首页 > 解决方案 > R:计算 tibble/df 中的不同值

问题描述

我有以下示例data.frame:

n <- 100
dates <- as.Date(c("2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04"))

df <- data.frame( date = sample(dates, n, replace = TRUE),
                  user = sample(LETTERS, n, replace = TRUE)
                 )

每个日期都记录了哪些用户 (AZ) 正在拨打电话。如果在特定日期没有特定用户的条目,则没有呼叫。用户一天可以打几个电话。

我想知道的是,每天有多少不同的用户在打电话?例如,我想要一个这样的表:

date        number_of_users_doing_phone_calls
2021-01-01                                 10
2021-01-02                                 16
2021-01-03                                 26
2021-01-04                                 20

标签: rdplyr

解决方案


一个dplyr解决方案

library(dplyr)

df %>% 
  group_by(date) %>% 
  summarise(number_of_users_doing_phone_calls = n_distinct(user))

推荐阅读