【问题标题】:Count number of total dates计算总日期数
【发布时间】:2023-01-10 06:00:04
【问题描述】:

我想计算每个人的日期总数(从数据集 1 到数据集 2)。 例如,ID 1 有 3 个唯一日期,因此 total_num_dates 为 3,ID 2 有 1 个唯一日期,因此 total_num_dates 为 1,等等。有没有办法做到这一点?

我感谢所有的帮助!谢谢!

数据集 1:

ID <- c(1,1,1,2,2,3,3)
Date <-as.Date(c("2021/08/04","2021/08/05","2021/08/06",
                 "2021/08/04","2021/08/04",
                 "2021/08/04","2021/08/05"))
x <- data.frame(ID,Date)

ID      Date
1       2021/08/04
1       2021/08/05
1       2021/08/06
2       2021/08/04
2       2021/08/04
3       2021/08/04
3       2021/08/05

数据集 2(所需)

ID <- c(1,1,1,2,2,3,3)
Date <-as.Date(c("2021/08/04","2021/08/05","2021/08/06",
                 "2021/08/04","2021/08/04",
                 "2021/08/04","2021/08/05"))
total_num_dates <- c(3,3,3,1,1,2,2)
x <- data.frame(ID,Date,total_num_dates)

ID      Date             total_num_dates
1       2021/08/04       3
1       2021/08/05       3
1       2021/08/06       3
2       2021/08/04       1
2       2021/08/04       1
3       2021/08/04       2
3       2021/08/05       2

【问题讨论】:

    标签: r


    【解决方案1】:
    library(dplyr)
    
    x %>% 
      group_by(ID) %>% 
      summarise(n = n_distinct(Date))
    

    【讨论】:

      【解决方案2】:

      我们可能需要n_distinct通过'ID'找到不同'Date'的数量

      library(dplyr) #devel or use `group_by(ID)` and `ungroup`
      
      x %>% mutate(tota_num_dates = n_distinct(Date), .by = "ID")
      

      【讨论】:

        猜你喜欢
        • 2011-04-05
        • 2020-11-14
        • 2017-03-25
        • 2022-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-09
        相关资源
        最近更新 更多