我正在尝试做的是以下内容:
library(tidyverse)
starwars %>%
filter(!is.na(gender)) %>%
group_by(gender) %>%
summarise(total_count = n(), max_species_count_per_gender = max(count(species)))
基本上,除了尝试获取每组的总计数(在一个
gender
之后用 group_by
分隔并在摘要列中报告)之外,我还尝试提取该较高级别组的最高子组人口计数给定的特征(在本例中为species
)。显然,上面不行,返回错误信息,
Caused by error in `UseMethod()`:
! no applicable method for 'count' applied to an object of class "character"
所以,如果我想最终得到类似于
的东西# A tibble: 2 × 3
gender total_count max_species_count_per_gender
<chr> <int> <int>
1 feminine 17 some_smaller_x
2 masculine 66 some_smaller_y
这是我可以作为
summarise
行动的一部分来处理的事情,还是我需要做其他事情?谢谢您的帮助。
您可以
summarize
两次。使用 .by...
是 group_by
和 ungroup
的替代方案,两者都可以。
library(tidyverse)
starwars %>%
filter(!is.na(gender)) %>%
summarize(
sub_count = n(),
.by = c(species, gender)
) %>%
summarize(
total_count = sum(sub_count),
max_species_count = max(sub_count),
.by = gender
)
#> # A tibble: 2 × 3
#> gender total_count max_species_count
#> <chr> <int> <int>
#> 1 masculine 66 26
#> 2 feminine 17 9
创建于 2024-02-29,使用 reprex v2.0.2