【问题标题】:Count first entrance to a dataframe in R计算 R 中数据帧的第一个入口
【发布时间】:2023-01-14 09:20:01
【问题描述】:

我想按年份总结数据框中对个人的所有第一次观察。个体由变量“id”标识。我想要一个使用 dplyr 的答案。

数据

year id
1  1984  1
2  1985  1
3  1986  1
4  1987  1
5  1988  1
6  1985  2
7  1986  2
8  1987  2
9  1988  2
10 1985  3
11 1986  3
12 1986  4
13 1987  4
14 1988  4

期望的输出

year2 entrance
1  1984        0
2  1985        2
3  1986        1
4  1987        0
5  1988        0

到目前为止我没有尝试过......

【问题讨论】:

    标签: r dplyr


    【解决方案1】:
    library(dplyr)
    library(tidyr)
    df %>% 
      group_by(id) %>% 
      slice_min(year) %>% 
      ungroup() %>% 
      count(year, name = "entrance") %>% 
      complete(year = min(df$year):max(df$year), fill = list(entrance = 0))
    
    # A tibble: 5 × 2
       year entrance
      <int>    <int>
    1  1984        1
    2  1985        2
    3  1986        1
    4  1987        0
    5  1988        0
    

    或者,使用权重:

    df %>% 
      mutate(wt = c(1, diff(id) != 0)) %>% 
      count(id, year, wt = wt) %>% 
      group_by(year) %>% 
      summarise(n = sum(n))
    
    # A tibble: 5 × 2
       year     n
      <int> <dbl>
    1  1984     1
    2  1985     2
    3  1986     1
    4  1987     0
    5  1988     0
    

    【讨论】:

      猜你喜欢
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2022-11-17
      • 2021-08-02
      相关资源
      最近更新 更多