将不同的列值行加到R中的新列行中

时间:2017-06-27 15:40:03

标签: r

我想将不同的列值行组合成一个新的列行。

示例df如下:

df <- data.frame(area = c("a","b","c","a"),
                     d = c(1,3,6,3),
                     f = c(3,2,8,2),
                     e = c(4,7,1,8),
                     g = c(6,9,2,9))

其中a,b,c是区域列值,我想将两行(a,c)组合/加成一个得到:

area  d     f   e  g
a+c+a  10  13  13  17  
b    3  2   7  9

我尝试过这样:

df <- aggregate(df, list(area=replace(area == c("a","c"), "a+c+a")), sum)

但它不会奏效。 谢谢。

1 个答案:

答案 0 :(得分:0)

使用dplyr

的另一种解决方案
library(dplyr)

aggr <- df[df$area %in% c("a", "c"),-1] %>% 
  summarize_all(sum)
rbind(df[!(df$area %in% c("a", "c")),], 
      bind_cols(area = "a+c+a", aggr))

#    area    d  f  e  g
# 2     b    3  2  7  9
# 1 a+c+a   10 13 13 17