访问R中数据框(
{
id = "14D19A9B-3D65-4FE2-9ACE-4C2D708DAAD8";
},
{
id = "8BFD10B8-F5FD-4CEE-A307-FE4382A0A7FD";
}
)
中i
列中的bar
元素可以通过两种不同的方式完成:
foo
和
foo[i,"bar"]
。
它们之间有什么区别吗?如果是这样,应该在效率,可读性等方面使用哪一个?
如果已经询问过此道歉,但foo$bar[i]
和[]
字符非常难以捉摸。
答案 0 :(得分:2)
我倾向于认为这是一个基于意见的问题,因此不适合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"]
快得多,但不是最快的替代