在上一个问题(Setting Value Based on Matching Column)中,我试图获取一个字符串,将其拆分为元素,并使用逻辑语句为每个元素创建一个列。这得到了很好的回答。
但经过几个月的研究,我现在需要一些反面的东西。
...鉴于
df <- data.frame(E1=FALSE,E11=TRUE,E20=FALSE,E30=FALSE,E31=TRUE,E100=FALSE,E300=FALSE,E313=TRUE,ECAT=TRUE)
我需要生成一个包含TRUE
匹配的所有列名的字符串 - 这有望产生类似......
> df[1,]
E1 E11 E20 E30 E31 E100 E300 E313 ECAT Topics
1 FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE TRUE E11,E31,E313,ECAT
实际上我有3,270行,实际上有102个主题,所以我真的需要为每一行提供一些TRUE
主题代码的连接。
我的尝试没有任何效果,谁会自愿提出答案或重复问题/答案的链接(因为它们可能存在 - 毕竟这是一个R问题)?
答案 0 :(得分:3)
你可以尝试
df$Topics <- apply(df, 1, function(x) toString(names(x)[x]))
答案 1 :(得分:2)
您可以使用apply
执行此操作。
df$Topics = apply(df,1,function(x) paste0(colnames(df)[x],collapse=','))