gpt4 book ai didi

r - 在 R 中有效地填充平均值旁边的值

转载 作者:行者123 更新时间:2023-12-04 21:57:52 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Calculate group mean (or other summary stats) and assign to original data

(4 个回答)


4年前关闭。




我有一张 table ,我需要用平均值填充。我目前正在使用低效的代码,这将在大型数据集上花费很长时间。例子:

样本数据:

x = read.table(text="a b value mean
1 1 10 0
1 1 12 0
2 2 14 0
2 1 16 0", header=TRUE)

代码:
y <- aggregate(x$value, list(a = x$a,b = x$b), mean)
print(y)
# a b x
# 1 1 1 11
# 2 2 1 16
# 3 2 2 14

for (i in 1:4) {
for (j in 1:3) {
if (x$a[i]==y$a[j] && x$b[i]==y$b[j]) {
x$mean[i]=y$x[j] }
}
}
print(x) # This is the final output
# a b value mean
# 1 1 1 10 11
# 2 1 1 12 11
# 3 2 2 14 14
# 4 2 1 16 16

我希望能够使用高效的代码从输入到输出。我是 R 的新手,非常感谢您的帮助!

最佳答案

data.table是要走的路:

library(data.table)
x.dt <- data.table(x[1:3]) # convert first three cols
x.dt[, mean:=mean(value), by=list(a, b)] # add back mean
# a b value mean
# 1: 1 1 10 11
# 2: 1 1 12 11
# 3: 2 2 14 14
# 4: 2 1 16 16
data.table非常快。

关于r - 在 R 中有效地填充平均值旁边的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266148/

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