【问题标题】:How to count rows using group_by (that is not working) [duplicate]如何使用 group_by 计算行数(不起作用)[重复]
【发布时间】:2021-08-30 17:02:58
【问题描述】:

我有一个看起来像这样的数据框(约 350 行)

#df
Id  Species           blooming         Location  Tmax      Cmax
1    H. aureus          Yes               SP      29        35
2    H. impetoginosa    No                SP      34        28
3    H. ochraceus       Only last year    MS      32        27
4    H. roseoalba       Yes               DF      37        25

savanna=df %>%
  select(Species,  blooming, Location ) %>%
  filter(blooming=="Yes") %>%
  group_by(Location)

我确认 Location 变量是一个因素。但是,它没有分组。

此外,我不知道如何计算每个位置具有“是”开花的行数(我的最终目标)。

你能给我一个提示吗?

【问题讨论】:

  • 图片不是发布数据(或代码)的好方法。请参阅 this Metarelevant xkcd。请不要删除数据并用图片替换。

标签: r


【解决方案1】:

这是count 的一种方式。它的优点是可以在一条指令中进行分组和计数。

library(dplyr)

df %>%
  filter(blooming == "Yes") %>%
  count(Location)
#  Location n
#1       DF 1
#2       SP 1

数据

df <-
structure(list(Id = 1:4, Species = c("H. aureus", "H. impetoginosa", 
"H. ochraceus", "H. roseoalba"), blooming = c("Yes", "No", "Only last year", 
"Yes"), Location = c("SP", "SP", "MS", "DF"), Tmax = c(29L, 34L, 
32L, 37L), Cmax = c(35L, 28L, 27L, 25L)), class = "data.frame", 
row.names = c(NA, -4L))

【讨论】:

    【解决方案2】:

    我们可以得到一个逻辑向量的sum来计数

    library(dplyr)
    df %>%
        group_by(Location) %>%
        summarise(n = sum(blooming == 'Yes', na.rm = TRUE))
    

    【讨论】:

    • 非常感谢!!
    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 2017-09-27
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多