我在寫R代碼來創建一個方形矩陣。所以,我的做法是:在R中分配矩陣的最佳方法,NULL vs NA?
- 分配正確的尺寸
- 循環矩陣通過我的矩陣中的每個元素,並用適當的值
我的問題填充它是非常簡單的:什麼是預先分配此矩陣的最佳方式是什麼?到目前爲止,我有兩個途徑:
> x <- matrix(data=NA,nrow=3,ncol=3)
> x
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
[3,] NA NA NA
或
> x <- list()
> length(x) <- 3^2
> dim(x) <- c(3,3)
> x
[,1] [,2] [,3]
[1,] NULL NULL NULL
[2,] NULL NULL NULL
[3,] NULL NULL NULL
據我所看到的,前者比後者更簡潔的方法。另外,前者用NAs填充矩陣,而後者用NULL填充。
哪種「更好」的方式來做到這一點?在這種情況下,我將「更好」定義爲「更好的性能」,因爲這是統計計算,而且此操作將與大型數據集一起進行。
雖然前者更簡潔,但並不令人驚訝地容易理解,所以我覺得這樣做可能無論如何。
另外,R中的NA和NULL有什麼區別? ?NA和?NULL告訴我,「NA」的長度爲「1」,而NULL的長度爲「0」 - 但這裏有更多嗎?還是最佳做法?這將影響我用來創建矩陣的方法。
不問,是爲什麼你想*循環*在矩陣的元素上?是否有可能使用矢量化操作?這應該是你的下一個問題! :) – Harlan 2009-11-17 14:17:09
@Harlan這基本上是我在這個問題在這裏:http://stackoverflow.com/questions/1719447/outer-equivalent-for-non-vector-lists-in-r。如果您有建議,我很樂意聽到它! – poundifdef 2009-11-17 15:03:59