给定一个整洁的数据集,例如mtcars的这个子集:
library(dplyr)
x <- mtcars %>% select(cyl, gear)
head(x)
## cyl gear
## Mazda RX4 6 4
## Mazda RX4 Wag 6 4
## Datsun 710 4 4
## Hornet 4 Drive 6 3
## Hornet Sportabout 8 3
## Valiant 6 3
我想要拟合一个线性模型,忽略观察太少的细胞。所以在交叉表中:
library(tidyr)
x %>% group_by(cyl, gear) %>% summarize(n = n()) %>% spread(cyl, n)
## Source: local data frame [3 x 4]
##
## gear 4 6 8
## 1 3 1 2 12
## 2 4 8 4 NA
## 3 5 2 1 2
我想过滤掉
所有的行gear == 3 & cyl %in% c(4, 6)
gear == 4 & cyl == 8
gear == 5
并最终得到原始整洁形式的数据集。
如何通过过滤单元格大小而不是齿轮/圆柱值来完成?
注意:欢迎任何解决方案,不仅限于dplyr
/ tidyr
等。
答案 0 :(得分:1)
如果您只是想使用基础R,您可以获得所有具有超过2个观测值的气缸/齿轮组合
subset(mtcars,
ave(cyl, cyl, gear, FUN=length)>2)