我想将不同的列值行组合成一个新的列行。
示例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)
但它不会奏效。 谢谢。
答案 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