【问题标题】:Is there an R function that can count the occurrences of a non-numeric column? [duplicate]是否有可以计算非数字列出现次数的 R 函数? [复制]
【发布时间】:2022-01-13 05:10:13
【问题描述】:

我在计算分类列时遇到问题。提前致谢!

所以我有这个数据框:

Employee ID  Station
1001         Produce
1002         Pharmacy
1001         Frozen
1003

我想在数据框中添加一列,用于计算每个员工拥有多少个工作站。

输出示例:

Employee ID      Station  Count
    1001         Produce  2
    1002         Pharmacy 1
    1001         Frozen   2
    1003                  0

【问题讨论】:

    标签: r dataframe count


    【解决方案1】:

    count 包中的函数 count 仅用于此目的:

    library(tidyverse)
    
    data <- tribble(
      ~Employee.ID, ~Station,
      1001L, "Produce",
      1002L, "Pharmacy",
      1001L, "Frozen",
      1003L, NA
    )
    
    counts <-
      data %>%
      filter(!is.na(Station)) %>%
      count(Employee.ID)
    
    counts
    #> # A tibble: 2 x 2
    #>   Employee.ID     n
    #>         <int> <int>
    #> 1        1001     2
    #> 2        1002     1
    
    data %>%
      left_join(counts) %>%
      mutate(n = n %>% replace_na(0))
    #> Joining, by = "Employee.ID"
    #> # A tibble: 4 x 3
    #>   Employee.ID Station      n
    #>         <int> <chr>    <dbl>
    #> 1        1001 Produce      2
    #> 2        1002 Pharmacy     1
    #> 3        1001 Frozen       2
    #> 4        1003 <NA>         0
    

    reprex package (v2.0.1) 于 2021-12-08 创建

    【讨论】:

    • 您好,感谢您的回复。这算 Employee ID 列,但我基本上想算 Station
    • 我的答案创建了所需的示例输出并计算了每个员工的唯一行数。由于一名员工可以在多个站点工作,因此 n 表示每位员工的站点数。
    • 谢谢!我的数据框的最后一行是空白,所以在我用 NA 替换它之前它不起作用抱歉!
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多