gpt4 book ai didi

r - 合并行 - 在 R 中对某些列求和而不对其他列求和

转载 作者:行者123 更新时间:2023-12-04 02:21:16 24 4
gpt4 key购买 nike

我有一个数据集,其中第 1 列中有重复的名称,然后是其他 3 个数字列。

我想将重复名称的行合并为一列,并对其中的两列求和,同时保留另一列。有没有简单的方法可以做到这一点?我一直在尝试用 sapply 和 lapply 来解决这个问题,并且在这里阅读了很多问答,但似乎找不到解决方案

Name <- c("Jeff", "Hank", "Tom", "Jeff", "Hank", "Jeff",
"Jeff", "Bill", "Mark")
data.Point.1 <- c(3,4,3,3,4,3,3,6,2)
data.Point.2 <- c(6,9,2,5,7,4,8,2,9)
data.Point.3 <- c(2,2,8,6,4,3,3,3,1)
data <- data.frame(Name, data.Point.1, data.Point.2, data.Point.3)

数据如下所示:

  Name data.Point.1 data.Point.2 data.Point.3
1 Jeff 3 6 2
2 Hank 4 9 2
3 Tom 3 2 8
4 Jeff 3 5 6
5 Hank 4 7 4
6 Jeff 3 4 3
7 Jeff 3 8 3
8 Bill 6 2 3
9 Mark 2 9 1

我想让它看起来像这样(将第 3 列和第 4 列相加并单独保留第 1 列。我希望它看起来像这样:

  Name data.Point.1 data.Point.2 data.Point.3
1 Jeff 3 23 14
2 Hank 4 16 6
3 Tom 3 2 8
8 Bill 6 2 3
9 Mark 2 9 1

任何帮助都会很棒。谢谢!

最佳答案

另一种更直接的解决方案是使用库 dplyr

library(dplyr)
data <- data %>% group_by(Name, data.Point.1) %>% # group the columns you want to "leave alone"
summarize(data.Point.2=sum(data.Point.2), data.Point.3=sum(data.Point.3)) # sum columns 3 and 4

如果你想对所有其他列求和,除了那些你想“单独留下”的列,然后替换 summarize(data.Point.2=sum(data.Point.2), data.Point.3=sum (data.Point.3))summarise_each(funs(sum))

关于r - 合并行 - 在 R 中对某些列求和而不对其他列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29130324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com