Мы можем использовать drop
по умолчанию для ?Extract
x [i, j, ..., drop = TRUE]
и документация drop
гласит:
drop - для матриц и массивов. Если TRUE, результат приводится к минимально возможному измерению (см. Примеры). Это работает только для извлечения элементов, а не для замены. Смотрите подробности в разделе drop.
drop
ИСТИНА, особенно с data.frame
. Но это не относится к subset
или data.table
или tibble
a[-(1:2),, drop = FALSE]
# x
#3 3
#4 4
#5 5
#6 6
#7 7
#8 8
#9 9
#10 10
Это тот случай, когда есть один столбец или строка
При tibble
размеры не упадут
library(dplyr)
tibble(x = 1:10) %>%
slice(-(1:2))
# A tibble: 8 x 1
# x
# <int>
#1 3
#2 4
#3 5
#4 6
#5 7
#6 8
#7 9
#8 10
или
tibble(x = 1:10)[-(1:2),]
или data.table
library(data.table)
data.table(x = 1:10)[-(1:2)]