Я не знаю более краткого способа поднабора для вашего конкретного примера, используя только векторы. Что касается with
, о чем вы можете подумать, так это поднабор фреймов данных на основе условий, использующих столбцы из этого фрейма данных. Например:
dat <- data.frame(variable1 = runif(10), variable2 = letters[1:10])
Если мы хотим получить подмножество dat
на основе условия, используя variable1
, мы можем сделать это:
dat[dat$variable1 < 0,]
или мы можем избавиться от необходимости каждый раз писать dat$*
, используя with
:
with(dat,dat[variable1 < 0,])
Теперь вы заметите, что я действительно не сохранял нажатие клавиш, выполнив это в этом случае. Но если у вас есть фрейм данных с длинным именем и сложным условием, это может немного вас спасти. См. Также связанную команду ?within
, если вы изменяете рассматриваемый фрейм данных.
В качестве альтернативы, вы можете использовать subset
, который может делать то же самое:
subset(dat, variable1 < 0)
subset
также может обрабатывать условия для столбцов с помощью аргумента select.