オプションを使用せずにデータフレームをサブセット化するより効率的な方法を提案できる人はいSQL/indexing/data.table
ますか?
同様の質問を探しましたが、これはインデックス作成オプションを提案しています。
タイミングでサブセット化する方法を次に示します。
#Dummy data
dat <- data.frame(x = runif(1000000, 1, 1000), y=runif(1000000, 1, 1000))
#Subset and time
system.time(x <- dat[dat$x > 500, ])
# user system elapsed
# 0.092 0.000 0.090
system.time(x <- dat[which(dat$x > 500), ])
# user system elapsed
# 0.040 0.032 0.070
system.time(x <- subset(dat, x > 500))
# user system elapsed
# 0.108 0.004 0.109
編集:
Roland が示唆したように、私はmicrobenchmarkを使用しました。最高のパフォーマンスを発揮するようwhich
です。
library("ggplot2")
library("microbenchmark")
#Dummy data
dat <- data.frame(x = runif(1000000, 1, 1000), y=runif(1000000, 1, 1000))
#Benchmark
res <- microbenchmark( dat[dat$x > 500, ],
dat[which(dat$x > 500), ],
subset(dat, x > 500))
#plot
autoplot.microbenchmark(res)