Ответ 1
Используйте аргумент drop=FALSE
для [
.
m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1] # vector
m[,1,drop=FALSE] # matrix
Когда я подмножаю матрицу на один столбец, результат имеет числовое число, а не матрицу (например, myMatrix [, 5] для подмножества к пятому столбцу). Есть ли компактный способ подмножества в один столбец, поддерживать формат матрицы и поддерживать имена строк/столбцов, не делая ничего сложного, например:
matrix( myMatrix[ , 5 ] , dimnames = list( rownames( myMatrix ) , colnames( myMatrix )[ 5 ] )
Используйте аргумент drop=FALSE
для [
.
m <- matrix(1:10,5,2)
rownames(m) <- 1:5
colnames(m) <- 1:2
m[,1] # vector
m[,1,drop=FALSE] # matrix
Для data.frame (вопрос, помеченный как дубликат этого вопроса, хотя эти вопросы не являются дубликатами), аккуратный способ с помощью dplyr:
mtcars %>% dplyr::select("wt")