2015-06-20 97 views
3

我是R編程新手,我有幾個關於R矩陣的問題。R編程中的矩陣

我有一個返回矩陣的函數。我想檢查返回的矩陣是否爲空。我如何在R中檢查它?如果它是一個整數,我們可以通過is.null(someinteger)來檢查它。但是我們如何在矩陣的情況下檢查相同的情況?

另外,整數可以由x <- NULL初始化。如果我只想初始化一個矩陣。我們是否初始化爲​​或者還有其他方法嗎? mat可以是任何大小。

謝謝。

回答

2

還有就是什麼是「空」的意思在這裏的一些問題,但是這是檢驗矩陣m長度爲零:

length(m) == 0 

關於初始化矩陣這個初始化它是一個爲0x0矩陣:

m <- matrix(, 0, 0) 

並且這initalizes它是含有NA一個1x1矩陣:

m <- matrix() 

並且這通過nc矩陣NA值初始化爲一個nr

m <- matrix(, nr, nc) 

不清楚任何這些是否實際上是有用的。你可能想描述你想要完成的事情。爲什麼你需要初始化它呢?

+0

通過檢查矩陣是否爲空,我的意思是返回的矩陣是否具有所有的NA值。關於初始化,我試圖聲明一個變量,它是一個矩陣。所以我想知道它是如何做到的。如果它的向量x < - c()和整數x < - 0可以完成。 – Ranger

+0

我想我們知道你正在嘗試初始化一個變量到一個矩陣,但是爲什麼?你是否試圖隨後按元素填充它?通常情況下,如果你可以避免它,那麼最好不要使用這種方法,而是最好在可能的情況下使用整個對象方法創建對象。需要更多細節來說明對您的特定情況更有意義的內容。 –

+0

我想聲明一個矩陣類型的變量,但它的大小是未知的。它稍後設置爲函數的輸出,該函數返回一個矩陣。 – Ranger

1

嘗試:

all(is.na(m)) 

或者:

is.logical(m) 

可以作爲一個單一的功能測試。如果一個numericcharacter是該列表的一個元素,則它將返回FALSE。第二種解決方案應該可行;看起來你的函數正在用數字和/或NAs創建矩陣。