我怎样才能写一个快速的函数,这将
- 将数据帧划分为 4 个相同长度的部分 w,x,y,z
- 返回 w,x,y,z 的每个索引平均值,这个平均值应该是
m=(w+x+y+z)/4
(注意这些都是字母所有向量)
示例数据可能如下所示:
# my data + noise 4 times
a <- 1:1000 + rnorm(10)
b <- 1:1000 + rnorm(10)
c <- 1:1000 + rnorm(10)
d <- 1:1000 + rnorm(10)
mydf <- data.frame(time=1:4000, measurement=c(a,b,c,d))
到目前为止,我使用以下缓慢的解决方法。并将该功能应用于mydf$measurement
AvgOverPeriodsVector <- function(hdata, recordedperiods=4){
SamplesPerPeriod <- length(hdata)/recordedperiods
a <- unname(sapply((split(hdata, rep(1:SamplesPerPeriod,recordedperiods))),mean ))
return(a)
}
我怎样才能提高速度?
想rowMean
在
元素方面意味着 R
更快吗?