gpt4 book ai didi

r - 计算变量内区间的平均值

转载 作者:行者123 更新时间:2023-12-04 10:12:01 25 4
gpt4 key购买 nike

假设我有一个数据集,例如: dat <- rnorm(25)和一个向量,它代表我的数据的特定索引:v <- c(1, 8, 13, 17, 25)

如何计算以下区间的平均值:1-1、1-8、8-13、13-17、17-25?

一般来说:我想平均 dat 内的特定间隔取决于索引向量 v这很有意义,但也很不规则。

最佳答案

您可以使用 cut 获取区间组,使用 aggregate 计算每个组的 mean

aggregate(dat, list(interval=cut(seq(dat), c(0,v))), mean)
# interval x
#1 (0,1] -0.5604756
#2 (1,8] 0.3484638
#3 (8,13] 0.1704305
#4 (13,17] 0.4599013
#5 (17,25] -0.6754733

或者,如果您希望第一个和最后一个位置的间隔重叠,您可以使用 sapply

sapply(seq(v), function(i) mean(dat[v[max(1,i-1)]:v[i]]))
#[1] -0.56047565 0.23484641 -0.06881816 0.44807533 -0.54510397

关于r - 计算变量内区间的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262237/

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