R dataframe中的元素良好实践

时间:2016-02-08 22:47:50

标签: r dataframe brackets dollar-sign

访问R中数据框( { id = "14D19A9B-3D65-4FE2-9ACE-4C2D708DAAD8"; }, { id = "8BFD10B8-F5FD-4CEE-A307-FE4382A0A7FD"; } ) i列中的bar元素可以通过两种不同的方式完成:

foo

foo[i,"bar"]

它们之间有什么区别吗?如果是这样,应该在效率,可读性等方面使用哪一个?

如果已经询问过此道歉,但foo$bar[i][]字符非常难以捉摸。

1 个答案:

答案 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"]快得多,但不是最快的替代