0

我怎样才能写一个快速的函数,这将

  • 将数据帧划分为 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 更快吗?

4

1 回答 1

1

刚刚找到关于.rowMeans这里的提示。我想这是一个很好的解决方案。

于 2012-11-25T02:49:27.670 回答