我将尝试提取数据帧中的列名,基于单元格中的值。我的数据是一系列几百个类别,单元格中有简单的二进制0或1,表示我想在新数据框中使用哪个列名。
为了说明我的观点:
但是很遗憾,这只返回一个类别名称!如有帮助将不胜感激!
为了说明我的观点:
year cat1 cat2 cat3 ... catN
2000 0 0 1 0
2001 1 0 0 0
2002 0 0 0 1
....
2018 0 1 0 0
我想要得到一个类似于以下结构的数据框:
year category
2000 cat3
2001 cat1
2002 catN
....
2018 cat2
我的代码:
newdf <- as.data.frame(colnames(mydf)[which(mydf == "1", arr.ind = TRUE)[2]])
但是很遗憾,这只返回一个类别名称!如有帮助将不胜感激!
dplyr
和tidyr
包,或者更复杂的data.table
。它们被设计来做这件事情。 - Andre Elrico