1

对于一个研究项目,我有一个相对较大的代码块,需要很长时间才能运行。需要缩短这个程序运行的时间,所以跑了 profr 看看哪些函数占用的时间最多。问题是,我不明白这个符号。有人可以向我解释一下,或者指向一个资源来解释这些是什么意思:

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

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

谢谢。

4

1 回答 1

4

引用“R for Dummies”的小贴士:

子集 R 对象

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

您可以使用三个运算符来对数据进行子集化:

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

  • [:从向量、数组、列表或数据框中提取多个元素。例如,从 iris中iris[, c("Sepal.Length", "Species")]提取列Sepal.Length和;从 iris 中提取前十行;并从 iris 中提取 Species 列的前十个元素。Speciesiris[1:10, ]iris[1:10, "Species"]


您可以在中找到相同的信息,?Extract尽管总结得不是很好;-)


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

  • Making a single assignment of multiple columns
  • Using the package data.table
于 2012-07-10T14:45:59.397 回答