我有一个相当大的数据集(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中可能有更好的方法来完成这项工作。
这个问题的关键似乎是创建一个稀疏矩阵的快速方法,该矩阵用零填充缺失的摘要数据。
答案 0 :(得分:0)
很确定这是一个简单的计数:
library(dplyr)
sensordata %>%
group_by(SOURCE) %>% # or maybe group_by(SOURCE, di)?
tally()