Кажется, что этого вопроса следовало задавать несколько раз, но я безуспешно ищу Questions that may already have your answer
.Подмножество столбцов матрицы матрицы R на конкретную запись
Как вы подмножите с булевыми операторами (без использования subset()
) столбцов матрицы?
> m = matrix(c("A", "B", "B", "B", "C", "A", "C", "C", "D"), nrow = 3)
> m
[,1] [,2] [,3]
[1,] "A" "B" "C"
[2,] "B" "C" "C"
[3,] "B" "A" "D"
Обратите внимание, что столбцы не имеют имен, и я хочу любых столбцов, содержащих в некоторой записи значения «D».
Например, в this post, звонок grades[grades[,"pass"] == 2,]
. Помимо того факта, что вызов заключается в извлечении строк, а тот факт, что pass
относится к одному столбцу, имена столбцов отсутствуют.
Я попытался:
> m[m == "D", ]
Error in m[m == "D", ] : (subscript) logical subscript too long
> m[which(m=="D"), ]
Error in m[which(m == "D"), ] : subscript out of bounds
> m = as.data.frame(m) # Turning the matrix into a df
> m[m == "D", ]
V1 V2 V3
NA <NA> <NA> <NA>
Действительно элегантный! Спасибо! – Toni