按R中的间隔计算列的平均值
我找不到我的问题的副本,所以我希望你能帮助我 通过一个简单的例子,我希望根据指定的窗口大小(称之为按R中的间隔计算列的平均值,r,R,我找不到我的问题的副本,所以我希望你能帮助我 通过一个简单的例子,我希望根据指定的窗口大小(称之为n)计算一列的平均值 我计算了一列下的行平均值,以n行为间隔,如下所示: #For n = 4, row 4 is calculated as (11+12+13+14)/n #For n =4, row 5 is calculated as (12+13+14+15)/n #And so on ... 我查看了以下帖子,例如: 我在下面尝试了这段代码,但无法获得写入解决方案 data&
n
)计算一列的平均值
我计算了一列下的行平均值,以n行为间隔,如下所示:
#For n = 4, row 4 is calculated as (11+12+13+14)/n
#For n =4, row 5 is calculated as (12+13+14+15)/n
#And so on ...
我查看了以下帖子,例如:
我在下面尝试了这段代码,但无法获得写入解决方案
data<-data %>% mutate(z=rollapplyr(y,10,FUN=mean,by=4))
data%变异(z=rollappyr(y,10,FUN=mean,by=4))
谢谢你的帮助。谢谢你你可以用图书馆动物园的滚动平均值来做
data <- data.frame(x = rep(1:10,1), y = rep(11:20, 1))
result <- structure(list(x = 1:10, y = 11:20, z = c("NA", "NA", "NA", "12.5",
"13.5", "14.5", "15.5", "16.5", "17.5", "18.5")), class = "data.frame", .Names = c("x",
"y", "z"), row.names = c(NA, -10L))
data您可以将outer()
与自定义函数一起使用。diag()
为您提供所需的值
myMean <- function(x, y) mean(dat[seq(x, y), 2])
mmean <- diag(outer(1:nrow(dat), (4:nrow(dat)), Vectorize(myMean)))
dat$z <- NA # initialize column
dat$z[-(1:3)] <- mmean
# x y z
# 1 1 11 NA
# 2 2 12 NA
# 3 3 13 NA
# 4 4 14 12.5
# 5 5 15 13.5
# 6 6 16 14.5
# 7 7 17 15.5
# 8 8 18 16.5
# 9 9 19 17.5
# 10 10 20 18.5
myMean
data <- data.frame(x = rep(1:10,1), y = rep(11:20, 1))
result <- structure(list(x = 1:10, y = 11:20, z = c("NA", "NA", "NA", "12.5",
"13.5", "14.5", "15.5", "16.5", "17.5", "18.5")), class = "data.frame", .Names = c("x",
"y", "z"), row.names = c(NA, -10L))
library(zoo)
data$z <- rollmeanr(data$y,4,fill=NA)
myMean <- function(x, y) mean(dat[seq(x, y), 2])
mmean <- diag(outer(1:nrow(dat), (4:nrow(dat)), Vectorize(myMean)))
dat$z <- NA # initialize column
dat$z[-(1:3)] <- mmean
# x y z
# 1 1 11 NA
# 2 2 12 NA
# 3 3 13 NA
# 4 4 14 12.5
# 5 5 15 13.5
# 6 6 16 14.5
# 7 7 17 15.5
# 8 8 18 16.5
# 9 9 19 17.5
# 10 10 20 18.5
dat <- data.frame(x=rep(1:10, 1), y=rep(11:20, 1))