R 如何使用某些函数在列中插入行

R 如何使用某些函数在列中插入行,r,dataframe,R,Dataframe,假设我有以下数据帧 data = data.frame(age=c("a","a","b","b"),cause=c("one","two","one","two"),value=c(1,2,5,8)) data age cause value 1 a one 1 2 a two 2 3 b one 5 4 b two 8 我想创建一个新的原因,将两个年龄段的原因值相加,如下所示 data age cause valu

假设我有以下数据帧

data = data.frame(age=c("a","a","b","b"),cause=c("one","two","one","two"),value=c(1,2,5,8))
data
   age cause value
1   a   one     1
2   a   two     2
3   b   one     5
4   b   two     8
我想创建一个新的原因,将两个年龄段的原因值相加,如下所示

data
   age cause value
1   a   one     1
2   a   two     2
3   b   one     5
4   b   two     8
5   a   onetwo  3
6   b   onetwo  13

知道我该怎么做吗?

一个选项是使用
dplyr

library(dplyr)
data <- data.frame(age=c("a","a","b","b"),cause=c("one","two","one","two"),value=c(1,2,5,8),
                  stringsAsFactors = FALSE)

data <- bind_rows(data, data %>% group_by(age) %>%
                               summarise(cause = paste0(cause, collapse = ""),
                                                        value = sum(value)))
库(dplyr)
数据%
总结(原因=粘贴0(原因,塌陷=”),
值=总和(值)))

带有
数据表的选项

library(data.table)
rbind(setDT(data), data[, .(cause = paste(unique(cause), collapse=''), 
      value = sum(value)), .(age)])

这是我自己的方法,根据一分钟前被删除的回复,我不知道为什么

data = data.frame(age=c("a","a","b","b"),cause=c("one","two","one","two"),value=c(1,2,5,8))

data_age = aggregate(value~ age + cause, data, sum)
causes = aggregate(value ~ age, data, sum)
causes$cause = "Both"
data_age <- rbind(data_age, causes)
data=data.frame(年龄=c(“a”、“a”、“b”、“b”),原因=c(“一”、“二”、“一”、“二”),值=c(1,2,5,8))
数据\年龄=聚合(值~年龄+原因、数据、总和)
原因=聚合(值~年龄、数据、总和)
原因$cause=“两者”
数据\u age请参阅,并通过分组运算将求和的输出设置为
data