说您有数据帧列表:
library(tidyverse)
library(janitor)
dat <- map(mtcars, tabyl)
然后您如何筛选出具有6个以上观察值的数据框?
我的第一个念头是discard()
,但我没有这么幸运。任何见识将不胜感激!
答案 0 :(得分:3)
使用purrr::discard
purrr::discard(dat, ~nrow(.) < 6)
或带有keep
purrr::keep(dat, ~nrow(.) >= 6)
答案 1 :(得分:2)
我们可以使用sapply
创建一个逻辑向量,并使用它来过滤list
中的base R
(不使用任何软件包)
dat[sapply(dat, nrow) >= 6]
答案 2 :(得分:1)
您可以使用Filter
,即
Filter(function(i)nrow(i) >= 6, dat)
答案 3 :(得分:1)
另一个purrr
变体:
dat[purrr::map_lgl(dat,~nrow(.x)>=6)]