R:选择数据帧中某些行的最有效方法是什么

时间:2014-02-20 17:14:07

标签: r

在数据框Question之外,列Question$TemperatureQuestion$Salary,我只想选择Salary高于10 Temperature的{​​{1}}。我总是这样做:

Question[Question$Temperature>10]$Salary

有更清洁的方式吗?

2 个答案:

答案 0 :(得分:1)

使用

效率更高
Question$Salary[Question$Temperature > 10]

因为你不是整个数据框的子集,而是向量的值,

答案 1 :(得分: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