【问题标题】:Combine rows which have same value in two columns R合并两列 R 中具有相同值的行
【发布时间】:2016-12-29 04:19:28
【问题描述】:

我有一个看起来像这样的数据框:

       A      B    C     
1.     80     1    12    
2.     80     1    13    
3.     80     2    14    
4.     81     2    15    
5 .    81     2    16    

我想要这个:

       A'     B'    C'     
1.     80     1    12 13   
2.     80     2    14    
3.     81     2    15 16    

任何建议包等?

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您可以使用aggregate 将C 值按A 和B 分组,这里使用paste(字符串连接)作为聚合函数:

    > df<-data.frame(A=c(80,80,80,81,81),B=c(1,1,2,2,2),C=12:16)
    > 
    > df
       A B  C
    1 80 1 12
    2 80 1 13
    3 80 2 14
    4 81 2 15
    5 81 2 16
    > 
    > aggregate(data=df,C~B+A,FUN=paste)
      B  A      C
    1 1 80 12, 13
    2 2 80     14
    3 2 81 15, 16
    

    【讨论】:

    • 感谢您的重播 如果我有另一个专栏,这可能吗?聚合(data=df,C~B+A, D~B+A, FUN=paste)
    • 我想你可以用aggregate(data=df,cbind(C,D)~B+A,FUN=sum)做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多