gpt4 book ai didi

r - 按组计算变量列表的总和

转载 作者:行者123 更新时间:2023-12-03 11:16:21 25 4
gpt4 key购买 nike

我有一个带有一个键和大约 100 个数字行的 data.table,其中一个设置为键。我想创建一个新变量,其中包含按键分组的每个数字行的总和。

例如,我现在的数据是

ID Count1 Count2 Count3
1 1 3 0
1 3 3 3
2 1 2 1
3 1 1 2

我想要的是:
ID Count1 Count2 Count3
1 4 6 3
2 1 2 1
3 1 1 2

我已经尝试了很多方法来获得这个。我知道我可以做到:
Y <- X[, list(Count=sum(Count1), Count2=sum(Count2), Count3=sum(Count3), by = ID]

但是,我有数百个变量,而且我只在列表中获取它们的名称。我应该如何处理这个问题?

非常感谢你的帮助。

这是生成测试数据的代码:
ID <-c(rep(210, 9), rep(3917,6))
Count1 <- c(1,1,0,1,3,1,4,1,1,1,1,1,1,0,1)
Count2 <- c(1,0,0,1,0,1,0,1,1,1,1,1,1,0,1)
Count3 <- c(1,0,0,1,0,1,0,1,1,1,1,1,1,0,1)
x <- data.table(ID, Count1, Count2, Count3)
setkey(x, ID)

最佳答案

您的测试数据与您提供的示例不匹配,但无论如何 - 您可以利用 data.table() 的事实。有一个名为 .SD 的运算符对于“数据子集。所以这应该有效:

x[, lapply(.SD, sum), by = ID]
#----
ID Count Count2 Count3
1: 210 13 5 5
2: 3917 5 5 5

这实际上在 FAQ 中有介绍:输入 vignette("datatable-faq", package="data.table")或查找 online .

关于r - 按组计算变量列表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13666780/

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