You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何使用subset和分位数筛选数据点数量前25%的国家

问题解决说明及代码

原代码错误原因

  • 逻辑偏离需求:你对TIME列计算分位数,完全没有按国家维度统计数据点数量
  • 语法不符合subset要求:subset第二个参数需要传入和数据集行数匹配的布尔筛选向量,你直接传入单个分位数值,筛选逻辑不成立,因此返回空结果

正确实现步骤

  1. 统计每个国家的总数据点数量
country_record_cnt <- table(drugs1$LOCATION)
  1. 计算各国数据点数量的75%分位数(数据量排名前25%即数值大于等于该分位数)
cnt_q75 <- quantile(country_record_cnt, 0.75)
  1. 筛选出符合数据量要求的国家代码
top_countries <- names(country_record_cnt)[country_record_cnt >= cnt_q75]
  1. 结合%in%运算符用subset筛选原数据集的对应记录
final_df <- subset(drugs1, LOCATION %in% top_countries)

如果需要更简洁的写法,也可以合并为一行代码:

final_df <- subset(drugs1, LOCATION %in% names(which(table(LOCATION) >= quantile(table(LOCATION), 0.75))))

内容的提问来源于stack exchange,提问作者T.P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:04