【发布时间】:2016-02-08 22:47:49
【问题描述】:
可以通过两种不同的方式访问 R 中数据框 foo 中 bar 列中的 ith 元素:
foo[i,"bar"]
和
foo$bar[i].
它们之间有什么区别吗?如果是这样,从效率、可读性等方面来说应该使用哪一个?
抱歉,如果已经问过这个问题,但 [] 和 $ 字符非常难以捉摸。
【问题讨论】:
标签: r dataframe brackets dollar-sign
可以通过两种不同的方式访问 R 中数据框 foo 中 bar 列中的 ith 元素:
foo[i,"bar"]
和
foo$bar[i].
它们之间有什么区别吗?如果是这样,从效率、可读性等方面来说应该使用哪一个?
抱歉,如果已经问过这个问题,但 [] 和 $ 字符非常难以捉摸。
【问题讨论】:
标签: r dataframe brackets dollar-sign
我倾向于认为这是一个基于意见的问题,因此不适合 SO。但是由于您要求考虑速度,因此我不会将其标记为这样。注意:您描述的索引方法不止两种...
data(mtcars)
library(microbenchmark)
microbenchmark(opt_a= mtcars$disp[12],
opt_b= mtcars[12, "disp"],
opt_c= mtcars[["disp"]][12])
Unit: microseconds
expr min lq mean median uq max neval cld
opt_a 5.322 6.4620 8.34029 6.8425 7.603 56.640 100 a
opt_b 9.503 10.0735 15.41463 10.6435 11.024 354.285 100 b
opt_c 4.181 4.942 7.77386 5.322 6.082 84.009 100 a
使用foo$bar[i] 似乎比foo[i, "bar"] 快得多,但不是最快的替代方法
【讨论】: