使用所选选项的列名称将列添加到数据框

时间:2013-05-15 17:22:36

标签: r dataframe

所以,如果我有如下数据框:

df = data.frame(cbind(c(0,0,1,0), c(1,0,0,1), c(1,1,0,0)))
df
  X1 X2 X3
1  0  1  1
2  0  0  1
3  1  0  0
4  0  1  0

我想在数据框中添加一个带有列名称的逗号列表列表,其中1是presenet。

因此,对于第1行,我想要一个"摘要"列" X2,X3"

我试过了

apply(df[c(1:3)], function(x) {
    if (x == 1)
    {
      df$summary = paste(df$summary, names(x), sep = ",")
    }
 })

但我认为我不理解函数(x)中的(x)

提前感谢您的任何帮助

1 个答案:

答案 0 :(得分:3)

像这样:

df$summary <- apply(df, 1, function(x)paste(colnames(df)[x==1], collapse=","))