使用列名重塑R中的数据

时间:2016-11-21 15:46:13

标签: r

我有以下数据,我希望在R中重新形成所需的输出(所需的输出1和2),我需要根据输入数据中多列的原始值将变量名解析为添加的列。 / p>

附上截图。

感谢任何帮助。

data from input to desired outputs

1 个答案:

答案 0 :(得分:3)

使用dplyrtidyr

DF <- data.frame(ID = 1:3,
                 A = c(0, 1, 1),
                 B = c(1, 0, 0),
                 C = c(0, 0, 0),
                 D = c(1, 0, 1),
                 E = c(0, 1, 0))
library(dplyr)
library(tidyr)

out1 <- 
  gather(DF, letter, bit, A:E) %>%
  filter(bit == 1) %>%
  arrange(ID, letter)

out2 <- 
  out1 %>%
  group_by(ID) %>%
  summarise(output = paste0(letter, collapse = ","))