2014-09-13 2 views
-2

Я создал пустую матрицу matrix(), когда мне нужно проверить, пуста ли заданная матрица, как я могу это сделать? Я знаю, что is.na(matrix()) - TRUE, но если заданная матрица больше размерности, она не может определить.Как проверить, пуста ли матрица

Что я имею в виду: пустой элемент, полный NA или NULL.

+0

'all (is.na (yourmatrix))'? – A5C1D2H2I1M1N2O1R2T1

+2

Вам необходимо предоставить воспроизводимый пример пустой матрицы. Матрица не может быть «полной NULL». – Roland

+0

, вы должны быть более точными в своем вопросе. в частности, является «матрицей (NaN)» «пустой» для вашей цели. или как насчет 'matrix (" ")'. первый случай пойман 'all (is.na (...))', но не второй. или '' матрица (список (NULL)) '' матрица, полная NULL ", как вы выразились? если да, то вам нужно что-то более сложное, чтобы поймать его. 'all (apply (matrix (list (NULL, NULL, NULL, NULL), nrow = 2), 1: 2, function (x) length (x [[1]])) == 0)' – lebatsnok

ответ

3

Я предполагаю, что вы просто ищете all. Вот небольшой пример:

M1 <- matrix(NA, ncol = 3, nrow = 3) 
#  [,1] [,2] [,3] 
# [1,] NA NA NA 
# [2,] NA NA NA 
# [3,] NA NA NA 
M2 <- matrix(c(1, rep(NA, 8)), ncol = 3, nrow = 3) 
M2 
#  [,1] [,2] [,3] 
# [1,] 1 NA NA 
# [2,] NA NA NA 
# [3,] NA NA NA 

all(is.na(M1)) 
# [1] TRUE 
all(is.na(M2)) 
# [1] FALSE 
Смежные вопросы