在大型数据框(100万行+)中,我计算了特定范围内满足第三个条件的元素(行)的数量。我有33个这些范围,并使用非常缓慢的循环让我的答案,没问题。由于速度引起了人们的广泛关注,我希望有任何帮助可以让它更快运行。我可以摆脱for循环和“矢量化”或任何类型的“应用”解决方案吗?子集化数据帧R避免循环
在此先感谢
代码:
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],])
}
你可以发布你的数据帧的至少一个子集(那个有100万行的?) – TARehman 2013-03-05 14:30:09
'N.data <-c(1:33)'。 '长度(N.data)'。 '[1] 33' – vaettchen 2013-03-05 14:36:00