R语言:括号表示法

时间:2012-07-10 14:40:44

标签: r

对于一个研究项目,我有一个相对较大的代码块,需要花费很长时间才能运行。需要缩短运行此程序所需的时间,因此请运行profr来查看占用最多时间的函数。事情是,我不明白这个符号。有人可以向我解释,或者指出一个解释这些含义的资源:

[<-.data.frame
[[.data.frame
[<-
[
[.factor
[.data.frame
[<-factor

?我意识到它们必须是R中用于创建新的和子集化数据帧的某种内部结构,我只是不知道哪个。

感谢。

1 个答案:

答案 0 :(得分:4)

引用"R for Dummies" cheet sheat:

子集R对象

  

向量,列表和数据框在表示中起着重要作用   R中的数据,因此能够简洁而正确地指定子集   您的数据很重要。

     

您可以使用三个运算符对数据进行分组:

  • [[:从列表或数据框中按名称或位置提取单个元素。例如,iris[["Sepal.Length"]]从数据框iris中提取列Sepal.Length; iris[[2]]从虹膜中提取第二个元素。

  • [:从矢量,数组,列表或数据框中提取多个元素。例如,iris[, c("Sepal.Length", "Species")]从鸢尾中提取列Sepal.LengthSpecies; iris[1:10, ]从虹膜中提取前十行;并且iris[1:10, "Species"]从虹膜中提取列物种的前十个元素。


您可以在?Extract中找到相同的信息,但不能很好地总结; - )


我的猜测是你的分析问题是[<-,因为我知道这是一个缓慢的操作。您可能有一个循环,在数据框中有多个[<-列分配。你可以通过以下方式大大加快这一步骤:

  • 对多列进行单一分配
  • 使用包data.table