在一个大型数据帧(超过 100 万行)中,我正在计算特定范围内并满足第三个标准的元素(行)的数量。我有 33 个这样的范围,并使用非常慢的 for 循环来给我答案,没问题。
由于速度是一个大问题,我将不胜感激任何帮助让它运行得更快。我可以摆脱 for 循环和“矢量化”或任何类型的“应用”解决方案吗?
提前致谢
代码:
N.data<-c(1:33)
Lower<-c(0,100000,125000,150000,175000,200000,225000,250000,275000,300000,325000,350000,375000,400000,425000,450000,475000,500000,550000,600000,650000,700000,750000,800000,850000,900000,950000,1000000,1100000,1200000,1300000,1400000,1500000)
Upper<-c(100000,125000,150000,175000,200000,225000,250000,275000,300000,325000,350000,375000,400000,425000,450000,475000,500000,550000,600000,650000,700000,750000,800000,850000,900000,950000,1000000,1100000,1200000,1300000,1400000,1500000, 5000000)
for (i in 1:(length(N.data))){
N.data[i]<-nrow(dataset[dataset$Z==c & dataset$X > Lower[i] & dataset$X < Upper[i],])
}