Функция фильтра в tidyverse сделает это за вас:
# setup
library(tidyverse)
dat1 <- data.frame('x' = c(1:5), 'y' = rnorm(5,0,1))
# solution
dat2 <- dat1 %>% filter(x == 2)
Обратите внимание, что %>%
- это "труба", говорящая, что она должна подавать dat1
в функцию filter()
, принимая строкииз dat1
, где x
равно 2, и сохраните их как dat2
Существуют и другие решения, такие как индексирование
dat1[dat1[,'x'] == 2,]
И subset()
функция
subset(dat1, x == 2)