gpt4 book ai didi

r - 如何计算R中某些连续数据值的平均值

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

例如,我有一个数据集

a<-c(1,2,3,4,5,6,7,8,9)

我想计算每三个连续数据值的平均值。比如说数据值

1:3,4:6,7:9

我应该使用什么命令?

最佳答案

1) rollapply 试试这个:

library(zoo)
a <- 1:9
rollapply(a, 3, mean, by = 3, align = "left", partial = TRUE)
## [1] 2 5 8

如果a的长度不是3的倍数,它也可以工作,在这种情况下,它仍然对最后的小部分进行平均。如果您希望删除末尾的任何一小部分,请省略 partial=TRUE 参数。如果您知道 a 的长度始终是 3 的倍数,则可以省略 partial = TRUE 参数,因为在这种情况下它不起作用。

2) tapply 这是第二种替代方法。 c(gl(n, 3, n)) 创建长度为 c(1, 1, 1, 2, 2, 2, ...)) 的分组向量n,然后 tapplymean 应用到每个组中 a 的值:

n <- length(a)
tapply(a, c(gl(n, 3, n)), mean)
## 1 2 3
## 2 5 8

3) 聚合tapply 类似,但提供数据框作为输出:

n <- length(a)
group <- gl(n, 3, n)
aggregate(a ~ group, FUN = mean)
## group a
## 1 1 2
## 2 2 5
## 3 3 8

关于r - 如何计算R中某些连续数据值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645148/

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