使用以下创建的带有
如下所示的摘要表格显示,
简而言之,我想从上面的可重现数据集中仅选择setosa 2007、versicolor 2008和virginica 2007,最好使用
编辑:请注意,我不想创建汇总表格,而是要从上面创建的
Year
列的iris
数据集,我想按Species
和Year
分组,选择每个species
观测次数最多的Year
。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
filter(row_number() == 1)
:-) - pogibasiris %>% count(Species, Year) %>% arrange(desc(n)) %>% distinct(Species, .keep_all = TRUE)
或者更易读的iris %>% count(Species, Year) %>% group_by(Species) %>% slice(which.max(n))
- Frankiris
的子集,而不是摘要表的子集。 - B. Davis%>% inner_join(iris)
以获得您想要的输出。 - Gregor Thomas