我正在使用一个大型数据集。此数据集包含一个引用代码列和其他值为TRUE或FALSE的列。我正在尝试创建一个新列,以收集值等于TRUE的列的串联名称(或列表形式)。 Dataframe 的简化如下所示:
data <- data.frame( Reference = c("001", "002", "003", "004", "005"),
Column A = c(TRUE, TRUE, FALSE, TRUE, FALSE),
Column B = c(FALSE, TRUE, TRUE, FALSE, FALSE),
Column C = c(TRUE, FALSE, TRUE, FALSE, TRUE))
data
预期结果如下所示:
| 参考文献|色谱柱A|B栏|C栏|D栏|
| - ------|- ------|- ------|- ------|- ------|
| 零零零一|正确|错误|正确|A列、C列|
| 小零零零二|正确|正确|错误|A列、B列|
| 小零零零三|错误|正确|正确|B列、C列|
| 0004|正确|错误|错误|色谱柱A|
| 小零零五|错误|错误|正确|C栏|
我知道如何通过连接值或列名来创建字段,但我不知道如何引入条件,以便它只接受值为TRUE的列名。
提前感谢你!!
3条答案
按热度按时间rnmwe5a21#
tidyverse
解决方案与tidyr::unite()
:gojuced72#
碱R溶液
dm7nw8vv3#
另一个
dplyr
选项: