Фильтрация списка фреймов данных по количеству наблюдений в каждом фрейме данных - PullRequest
3 голосов
/ 02 мая 2019

Скажем, у вас есть список фреймов данных:

library(tidyverse)
library(janitor)

dat <- map(mtcars, tabyl)

Как вы могли бы затем отфильтровать эти фреймы данных с более чем 6 наблюдениями?

Моя первая мысль была discard(), но яне было такой удачи.Любое понимание будет оценено!

Ответы [ 4 ]

3 голосов
/ 02 мая 2019

С purrr::discard

purrr::discard(dat, ~nrow(.) < 6)

или с keep

purrr::keep(dat, ~nrow(.) >= 6)
2 голосов
/ 02 мая 2019

Мы можем использовать sapply для создания логического вектора и использовать его для фильтрации list в base R (пакеты не используются)

dat[sapply(dat, nrow) >= 6]
1 голос
/ 02 мая 2019

Другой purrr вариант:

dat[purrr::map_lgl(dat,~nrow(.x)>=6)]
1 голос
/ 02 мая 2019

Вы можете использовать Filter, т.е.

Filter(function(i)nrow(i) >= 6, dat)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...