2012-07-10 43 views
1

對於一個研究項目,我有一段相當大的代碼塊需要很長時間才能運行。需要縮短該程序運行所需的時間,因此請運行profr查看哪些功能最耗時。事情是,我不明白這個符號。有人可以向我解釋,或者指給我一個解釋這些意思的資源:R語言:括號表示法

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

?我意識到它們必須是R中的某種內部組件,用於創建新的和子集的數據框,我只是不知道它是哪一個。

謝謝。

+0

'[<-'是分配新建分配FY到索引值,與目標是什麼簡單,如向量中的項目。 '[< - 。data.frame'被分配給數據框內的一個位置。 – 2012-07-10 19:26:12

回答

4

"R for Dummies" cheet sheat報價:

子集[R對象

載體,列表和數據幀在代表中的R 數據發揮了重要的作用,所以能夠簡潔和正確指定您的數據的子集 很重要。

您可以使用三大運營商子集數據:

  • [[:通過名稱或位置從列表或數據幀中抽取單個元素。例如,iris[["Sepal.Length"]]從數據幀虹膜中提取列Sepal.Length; iris[[2]]從虹膜提取第二個元素。

  • [:從矢量,數組,列表或數據框中提取多個元素。例如,iris[, c("Sepal.Length", "Species")]從虹膜中提取列Sepal.LengthSpecies; iris[1:10, ]從虹膜中提取前十行;和iris[1:10, "Species"]從虹膜中提取列物種的前十個元素。


您可以在?Extract相同的信息雖然沒有很好地總結;-)


我的猜測是,你分析的問題是與[<-,因爲我知道這是一個緩慢的操作。您可能有一個循環,將多個[<-列分配到數據框中。你可以使這個基本上更快地:

  • 製作多列
  • 的單個分配使用包data.table
+0

不知道data.table,非常感謝! – 2012-07-11 15:02:29