首页 > 解决方案 > 如何使用某些函数在列中插入行

问题描述

假设我有以下数据框

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

知道我该怎么做吗?

标签: rdataframe

解决方案


一种选择是使用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)))

推荐阅读