r - 获取dat等于的列名

标签 r dataframe

我有一个包含7行4列的数据框(df)(名为c1,c2,c3,c4):

c1  c2  c3  c4
Yes No  Yes No    
Yes Yes No  No    
No  Yes No  No    
Yes No  No  No    
Yes No  Yes No    
Yes No  No  No    
No  No  Yes No

如果第1到第4列的值等于"is",我想将第5列添加到名为“预期结果”的数据框中。例如,在第1行上,我在第1列和第3列中具有"is"参数。要填充“预期结果”列,我将进行连接并将Column1名称和Column 2名称添加到结果中。

这是预期的完整结果:
c1, c3    
c1, c2    
c2    
c1    
c1, c3    
c1    
c3

我有以下代码行,但有些不正确:
df$Expected_Result <- colnames(df)[apply(df,1,which(LETTERS="Unfit"))]

最佳答案

使用data.table的选项

library(data.table)
setDT(df)[, rownum:=1:.N,]
df$Expected_result <- melt(df, "rownum")[, 
                         toString(variable[value=="Yes"]), rownum]$V1

关于r - 获取dat等于的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31945291/

相关文章:

r - 将字符串拆分为话语并将同一说话人的话语分配给数据帧中的列

python - 分组依据和 SUM 列

r - ggforce facet_zoom - 仅在缩放示例上标记

python - 对于每个数据帧行,获取前 n 个值以及它们出现的列索引

替换 R data.table 中的 Inf/显示列中的 Inf 数

r - sqlite 的替代方法或在 sqlite 中处理日期/时间字段的更好方法

r - 为什么 data.table 行索引上的 for 循环比 data.frame 慢?

python - Pandas如何将列按日期时间移动到不在索引中的日期时间

R Mapreduce 库 'rmr2' 在加载时显示警告消息

r - 有没有办法去掉geom_errorbar的竖线?