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

R语言如何从Income_Democracy.dta筛选平均dem_ind>0.95的国家名称

首先确认你已经将Income_Democracy.dta导入为incdem数据框,如果还未导入,可以使用haven包读取Stata格式的dta文件:

# 未安装haven包先执行下行注释代码
# install.packages("haven")
library(haven)
incdem <- read_dta("Income_Democracy.dta")

以下提供两种常用实现方案:

方案1:基础R实现(适配你已掌握的subset、mean函数逻辑)

用基础R自带的aggregate()函数完成分组聚合,无需安装额外依赖包:

# 按国家分组,计算每个国家dem_ind的平均值,na.rm=TRUE可自动忽略缺失值
country_dem_mean <- aggregate(dem_ind ~ country, data = incdem, FUN = function(x) mean(x, na.rm = TRUE))
# 筛选平均dem_ind大于0.95的国家,生成结果数据集
result <- subset(country_dem_mean, dem_ind > 0.95)

执行后result就是符合要求的新数据集,第一列为国家名称,第二列为对应平均dem_ind值。如果只需提取符合条件的国家名向量,追加一行代码即可:

qualified_countries <- result$country

方案2:tidyverse实现(语法更直观,适合后续复杂分析扩展)

如果你使用tidyverse生态的工具,用dplyr的分组汇总逻辑可读性更强:

# 未安装tidyverse包先执行下行注释代码
# install.packages("tidyverse")
library(dplyr)

result <- incdem %>%
  group_by(country) %>% # 按国家维度分组
  summarise(mean_dem_ind = mean(dem_ind, na.rm = TRUE)) %>% # 计算每组的平均dem_ind
  filter(mean_dem_ind > 0.95) # 筛选符合阈值的国家

内容的提问来源于stack exchange,提问作者user17237061

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:36:03