如何在R中根据多个条件汇总计数

问题描述 投票:0回答:1

我想总结一下每个物种符合一定条件的数量,以便进一步分析。

这是数据示例

df <- data.frame(Species = c("BRK","BRK","BRK","RGN","BRK","RGN"),
Length = c(4.2,4.4,5.3,1.6,5.9,8.2))

我想按物种分组并总结每个物种大于特定长度(例如 4.5)和小于特定长度(<4.5).

我希望生成的 df 看起来像这样:

df1 <- data.frame(Species = c("BRK","RGN"), Gtr_4.5 = c(2,1), Less_4.5 = c(2,1))

我可以通过过滤和汇总然后合并数据来获得所需的结果,但我知道有一种方法可以使用分组和汇总的组合来做到这一点。

这是我尝试过的示例以及我遇到的困难

summary <- df %>% group_by(Species) %>% summarize(Total_Captured = n())

我不知道如何根据长度条件进行总结。

r dplyr tidyverse
1个回答
0
投票

你可以试试

df %>%
  reframe(
    Gtr_4.5 = sum(Length > 4.5),
    Less_4.5 = sum(Length < 4.5),
    .by = Species
  )

df %>%
  summarise(
    Gtr_4.5 = sum(Length > 4.5),
    Less_4.5 = sum(Length < 4.5),
    .by = Species
  )

你将获得

  Species Gtr_4.5 Less_4.5
1     BRK       2        2
2     RGN       1        1
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.