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