如何在R的tibble中计算各区域全年无可用房源的房东占比
实现方案
你可以通过两次分组统计完成计算,第一次先按区域+房东ID分组判断房东是否符合「所有房源全年可用天数为0」的条件,第二次按区域分组计算对应占比即可,使用dplyr的实现代码如下:
library(dplyr) # 替换df为你实际的数据集名称 result <- df %>% # 按区域、房东ID分组,判断该房东在当前区域的所有房源是否均无可用天数 group_by(district, host_id) %>% summarise(all_zero = all(availability_365 == 0, na.rm = TRUE), .groups = "drop") %>% # 按区域分组统计占比 group_by(district) %>% summarise( # 区域总房东数 total_host_count = n(), # 全零房源房东数 zero_available_host_count = sum(all_zero), # 占比 zero_host_ratio = zero_available_host_count / total_host_count )
代码说明
all(availability_365 == 0)逻辑判断:仅当该房东在对应区域名下的所有房源availability_365都为0时返回TRUE,只要有1套房源有可用天数就返回FALSE- 加
na.rm = TRUE是为了兼容字段存在空值的场景,如果你的数据没有空值可以删掉这个参数 - 最终返回的
result表中,每行对应一个区域的统计结果,zero_host_ratio就是你需要的比例值
内容的提问来源于stack exchange,提问作者Dave Twickenham
相关产品推荐
相关产品推荐

