如何对数据框的行进行求和并保留它们的名称

3
我有一个数据框,其中一些变量名相同但值不同。我需要对这些值进行求和,并将原始值保留在单独的列中。
data <- data.frame(cod = c("A", "B", "C", "A", "A", "B"),
           values = c(3, 4, 5, 1, 2, 5))
 data

 cod   Values 
 A          3
 B          4
 C          5
 A          1
 A          2
 B          5

我期望以下内容,其中原始的Values列保持不变,并将分组求和作为一个新列Values2添加进去:
> data2
 cod   Values Values2
 A          3       6
 B          4       9
 C          5       5
 A          1       6
 A          2       6
 B          5       9

1
尝试使用 data$Values2 <- with(data, ave(Values, cod, FUN = sum)) 或者 library(dplyr); data %>% group_by(cod) %>% mutateValues2 = sum(Values)) - akrun
1
我尝试了第一个,它非常好用。谢谢。 - DR15
1个回答

1
一种使用基础R的选项是:
data$Values2 <- with(data, ave(Values, cod, FUN = sum))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接