gpt4 book ai didi

r - 求 R 中每 1000000 个计数的列的平均值

转载 作者:行者123 更新时间:2023-12-02 12:52:29 25 4
gpt4 key购买 nike

我有一个数据框,其结构如下,包含两列data1data2。以下是示例数据:

data1       data2        
800000 1
800030 0.956521739130435
1000000 0.480916030534351
1686626 0.496
1687492 0.174757281553398
2148463 0.0344827586206897
2850823 0.05
2959087 0.0416666666666667

我想计算 data1 中每 1000000 个计数的第二行即 data2 的平均值。这意味着它应该给出前 2 行的平均值,然后给出接下来 3 行的平均值,然后给出接下来 3 行的平均值,依此类推...

输出应该是一个数据帧,其最后一个值在 1000000 区间内,并且是该区间内 data2 的平均值:示例输出如下所示:

 800030  0.97826087
1687492 0.38389110
2959087 0.04204981

有人可以帮忙在 R 中做到这一点吗?

最佳答案

假设您的数据位于 data.frame DF 中,您可以使用 aggregate 函数来执行此操作

> with(DF, aggregate(data2, by=list((data1+0.01)%/%1000000), mean ))
Group.1 x
1 0 0.97826087
2 1 0.38389110
3 2 0.04204981

要获取计算 mean 的列中的值,您必须再次使用 aggregate - 这次是在 data1 列本身。之后,您可以合并两个生成的数据帧。

res <- with(DF, merge(aggregate(data1, by = list((data1 + 0.01)%/%1e+06), paste), aggregate(data2, by = list((data1 + 0.01)%/%1e+06), mean), by = "Group.1"))
names(res) <- c("Group", "Values", "Mean")
res
## Group Values Mean
## 1 0 800000, 800030 0.97826087
## 2 1 1000000, 1686626, 1687492 0.38389110
## 3 2 2148463, 2850823, 2959087 0.04204981

关于r - 求 R 中每 1000000 个计数的列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15897339/

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