通过ID将多个列组合到R中的一列中

时间:2018-04-05 03:43:58

标签: r group-by associations

数据集如下:

enter image description here

输出应如下

enter image description here

我尝试过以下事情

  1. sum <- gather(Learning_platform, A,B) 我使用了来自gather的{​​{1}}函数,但它没有给出我想要的结果。它只收集数据并用下划线分隔。
  2. 2。tidyr 这也没有用,因为R无法处理因子的总和。

    1. 我还使用df %>% group_by(A) %>% summarise(B = sum(B))包中的以下示例无效:
    2. tidyr

      请为上述示例提供解决方案或学习材料。

2 个答案:

答案 0 :(得分:2)

我们可以使用gather

library(tidyverse)
gather(df1, key, val, - ID) %>%
    filter(val != "") %>%
    select(-key) %>%
    arrange(ID)

如果空白为NA,那么我们可以删除gather内的这些元素

gather(df1, key, val, -ID, na.rm = TRUE) %>%
    select(-key) %>%
    arrange(ID)

答案 1 :(得分:1)

我们也可以使用reshape2

reshape(df, idvar = "ID", varying = list(2:5), direction = "long") %>%
  arrange(ID) %>% select(-time)