在R中聚合此数据的更快方法

时间:2014-12-08 21:03:14

标签: r

我有一个相当大的数据集(6.5 M行,8个cols),我总结了按天计算的观察总计数的时间序列。
我目前正在对两个向量的交集进行求和,这两个向量是我的时间序列矩阵中的轴。迭代需要花费数小时才能完成,我想知道我是否会忽略可能会提供更好性能的东西。

我的代码:

m<-length(datespace)
sensorlist<-as.vector(unique(sensordata$SOURCE))
n<-length(sensorlist)

y <- matrix(0, nrow=m, ncol=n)
colnames(y) <- sensorlist
for(sensor in 1:n){
  for(date in 1:m){
     count<-sum(as.vector(sensordata$SOURCE==sensorlist[sensor] & di==datespace[date]))
     y[date,sensor] = count
  }
}

我知道FOR循环效率不高表明在R中可能有更好的方法来完成这项工作。

这个问题的关键似乎是创建一个稀疏矩阵的快速方法,该矩阵用零填充缺失的摘要数据。

1 个答案:

答案 0 :(得分:0)

很确定这是一个简单的计数:

library(dplyr)

sensordata %>%
  group_by(SOURCE) %>%  # or maybe group_by(SOURCE, di)?
  tally()