【发布时间】:2018-05-01 18:47:09
【问题描述】:
使用iris 数据集并添加如下创建的Year 列,我想按Species 和Year 分组以选择Year,每个@ 的观察次数最多987654326@。
iris$Year <- c(rep(c("2007", "2008"), each = 25),
rep(c("2007", "2008"), times = c(10, 40)),
rep(c("2007", "2008"), times = c(40, 10)))
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species Year
1 5.1 3.5 1.4 0.2 setosa 2007
2 4.9 3.0 1.4 0.2 setosa 2007
3 4.7 3.2 1.3 0.2 setosa 2007
4 4.6 3.1 1.5 0.2 setosa 2007
5 5.0 3.6 1.4 0.2 setosa 2007
6 5.4 3.9 1.7 0.4 setosa 2007
如下面的汇总表所示,2007 和 2008 对 setosa 都有 25 个观察值(行)。当观察数量有联系时,我想选择最小的Year。
简而言之,我试图从上面的可重现数据集中仅选择 setosa 2007、versicolor 2008 和 virginica 2007,最好使用dplyr
编辑注意,我想从上面创建的iris 数据中选择相应的物种-年份组合,而不是创建一个汇总表。换句话说,我想对iris 进行子集化,使其仅包括 setosa 2007、versicolor 2008 和 virginica 2007(即观察次数最多的最小年份)。对困惑感到抱歉。 结束编辑
library(dplyr)
iris %>%
group_by(Species, Year) %>%
summarise(N = n()) %>%
as.data.frame()
Species Year N
1 setosa 2007 25
2 setosa 2008 25
3 versicolor 2007 10
4 versicolor 2008 40
5 virginica 2007 40
6 virginica 2008 10
【问题讨论】: