[英]dplyr-summarise, keep the original group name
iris %>% mutate(subgroup=rep(c('A','B'),75)) %>% group_by(Species) %>% summarise(SLmin=min(Sepal.Length))
Species SLmin
<fct> <dbl>
1 setosa 4.3
2 versicolor 4.9
3 virginica 4.9
我想保留原始子組名稱。 但
iris %>% mutate(subgroup=rep(c('A','B'),75)) %>% group_by(Species,subgroup) %>% summarise(SLmin=min(Sepal.Length))
Species subgroup SLmin
<fct> <chr> <dbl>
1 setosa A 4.4
2 setosa B 4.3
3 versicolor A 5
4 versicolor B 4.9
5 virginica A 4.9
6 virginica B 5.6
此代碼無法在每個物種中獲得最小值。
你知道什么想法嗎?
PS:
很難解釋,所以我會解決它。
我需要分組。
總結結果后。
setosa B 4.3
versicolor B 4.9
virginica A 4.9
您可以使用which.min
獲取which.min
最小值的Sepal.Length
,該索引可用於對相應的subgroup
值進行子集化。
library(dplyr)
iris %>%
mutate(subgroup=rep(c('A','B'),75)) %>%
group_by(Species) %>%
summarise(SLmin=min(Sepal.Length),
subgroup = subgroup[which.min(Sepal.Length)])
# Species SLmin subgroup
# <fct> <dbl> <chr>
#1 setosa 4.3 B
#2 versicolor 4.9 B
#3 virginica 4.9 A
另一種方法是選擇每個Species
的最小行,然后只選擇我們在最終輸出中需要的那些列。
iris %>%
mutate(subgroup=rep(c('A','B'),75)) %>%
group_by(Species) %>%
slice(which.min(Sepal.Length))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.