Возможно, ваш лучший вариант - использовать идиому R для работы с пропущенными значениями или значениями NA
. После того как вы закодировали NA
значения, вы можете работать с complete.cases
, чтобы легко достичь своей цели.
Создать пример данных с пропущенными значениями (т. Е. Со значением 4):
set.seed(123)
m <- matrix(sample(1:4, 30, prob=c(0.3, 0.3, 0.3, 0.1), replace=TRUE), ncol=6)
m[4, ] <- rep(4, 6)
Заменить все значения, равные 4, на NA
:
m[m==4] <- NA
m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 NA 2 2 2
[2,] 2 3 3 1 2 3
[3,] 3 2 2 1 2 3
[4,] NA NA NA NA NA NA
[5,] NA 3 1 NA 2 1
Теперь вы можете использовать различные функции, которые работают со значениями NA
. Например, complete.cases
вернет только, как вы уже догадались, завершенные дела:
m[complete.cases(m), ]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 3 1 2 3
[2,] 3 2 2 1 2 3
Для получения дополнительной информации см. ?complete.cases
или ?na.fail
в пакете stats
.