2014-02-20 32 views
0

出數據框Question的最有效的方式,與Question$SalaryQuestion$Temperature,我想Temperature高於10.選擇我總是做以下的只有Salary的:R:什麼是在數據幀來選擇某些行

Question[Question$Temperature>10]$Salary 

有沒有更清潔的方法?

+1

你的榜樣代碼對於選擇行無效。你的意思是'問題[問題$溫度> 10,] $薪水'? –

回答

1

這是更有效地使用

Question$Salary[Question$Temperature > 10] 

,因爲你沒有子集的整體數據幀,而向量的值,

1

三連標杆

l<-data.frame(x=sample(1:10,1000, replace=T), y=runif(1000)) 
f1<-function(df){l2=df[df$x>8,"y"]} 
f2<-function(df){l2=df[df$x>8,]$y} 
f3<-function(df){l2=df$y[df$x>8]} 
print(microbenchmark(f1(l), f2(l), f3(l), times=1000)) 

結果

常用方法
Unit: microseconds 
    expr  min  lq median  uq  max neval 
f1(l) 97.428 101.378 102.696 107.962 3757.555 1000 
f2(l) 247.081 253.226 257.614 270.780 734.659 1000 
f3(l) 59.686 62.319 63.197 64.514 3793.980 1000