【发布时间】:2014-10-12 16:12:07
【问题描述】:
我正在尝试根据该数据框中的其他几个列名及其值创建一个新列。
数据看起来像这样
user_id Gender Age Cate_Ch_Bot Cate_Ch_Phy Cate_Ch_Chem Cate_Ch_Comp Cate_Ch_Zoo
0001 F 13 0 1 0 1 0
0002 M 17 1 1 0 0 0
0003 F 13 0 0 0 0 0
0004 F 12 0 0 1 0 0
0005 F 14 0 1 0 0 1
0006 M 16 0 0 0 0 0
我需要创建一个类别列,其中将包含所有值为 1 的类别。如果用户没有类别,则它为空白或 NA。
所以想要的输出是:
user_id Gender Age Cate_Ch_Bot Cate_Ch_Phy Cate_Ch_Chem Cate_Ch_Comp Cate_Ch_Zoo Ch_Category
0001 F 13 0 1 0 1 0 Phy:Comp
0002 M 17 1 1 0 0 0 Bot:Phy
0003 F 13 0 0 0 0 0 NA
0004 F 12 0 0 1 0 0 Chem
0005 F 14 0 1 0 0 1 Phy:Zoo
0006 M 16 0 0 0 0 0 NA
我正在尝试遍历列名,但不确定如何正确执行。
test$category = ""
for (j in 1:dim(test)[1]){
for (i in colnames(test[4:14])){
name = colnames(test[i])
if (test[j,name] == 1){
test$category[j] = paste(test$category[j], colnames(test[i]),sep=":")
}
}
}
我将非常感谢这方面的任何帮助。
【问题讨论】:
标签: r