在大型數據框(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