簡體   English   中英

如何檢查R中的矩陣是否已滿?

[英]How to check if a matrix in R is full?

我對R中的矩陣有一個很愚蠢的問題:如何檢查R中的矩陣是否已滿?

例如:

m1 = matrix(NA, 2, 2)
m1[,1] = c("a", "b")

因此,此時,此矩陣應如下所示:

a NA
b NA

我嘗試使用is.null()檢查它是否為空,並返回False ,這是這里期望的。 但是我想知道R中是否有一個函數,該函數可以判斷矩陣中的每個條目是否都具有賦值(無論它是什么,整數,字符,只要它具有賦值)?

提前致謝!

is.null測試對象是否為空; 它不在矩陣內部。 實際上,因為length(NULL) == 0 ,所以矩陣單元格不能為null; 當您嘗試將NULL分配給一個單元格時,您會看到此錯誤:

m1[1,1] <- NULL
 Error in m1[1, 1] <- NULL : number of items to replace is not a multiple of replacement length 

如果要檢查矩陣中是否存在任何NA ,可以使用與any(is.na(...))相同的anyNA ,但可以更快:

泛型函數anyNA以可能更快的方式(尤其是原子向量)實現any(is.na(x))。

anyNA(m1)
# [1] TRUE

!anyNA(m1)          # negation tells you if it's full, here means not full
# [1] FALSE

如果m1的長度等於非NA元素的數量,則它為full 在這種情況下,

length(m1) == sum(!is.na(m1))
#[1] FALSE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM