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

在R语言中高效计算df_plane数据集情境2下飞机使用人群占比的方法

自动化计算情境2中使用飞机人群占比的R方案

以下是几种高效的自动化计算方法,同时处理数据中的NA值:

方法1:基础R(无需额外包)

直接通过数据筛选和统计函数实现,适合不想加载第三方包的场景:

# 筛选情境2的有效样本(排除flight_uses为NA的行)
valid_data <- df_plane[df_plane$Situation == 2 & !is.na(df_plane$flight_uses), ]

# 计算占比
usage_ratio <- sum(valid_data$flight_uses == 1) / nrow(valid_data)

# 可选:转换为带百分比的字符串格式
usage_percent <- paste0(round(usage_ratio * 100, 2), "%")

# 输出结果
cat("情境2中使用飞机的人群占比:", usage_percent, "\n")

方法2:dplyr(tidyverse风格)

用tidyverse生态的dplyr包,代码更简洁易读,适合日常数据处理流程:

library(dplyr)

usage_result <- df_plane %>%
  # 过滤情境2且flight_uses非NA的行
  filter(Situation == 2, !is.na(flight_uses)) %>%
  # 汇总统计指标
  summarize(
    total_people = n(),
    flight_user_count = sum(flight_uses == 1),
    usage_ratio = flight_user_count / total_people,
    usage_percent = paste0(round(usage_ratio * 100, 2), "%")
  )

# 查看结果
print(usage_result)

方法3:data.table(大数据集优化)

如果你的数据集规模较大,data.table的运算效率更高:

library(data.table)

# 转换为data.table格式
setDT(df_plane)

usage_result <- df_plane[Situation == 2 & !is.na(flight_uses), .(
  total_people = .N,
  flight_user_count = sum(flight_uses == 1),
  usage_ratio = sum(flight_uses == 1)/.N,
  usage_percent = paste0(round(sum(flight_uses == 1)/.N * 100, 2), "%")
)]

# 输出结果
print(usage_result)

注意事项

  • 必须处理NA值:如果忽略NA,sum(flight_uses == 1)会返回NA,导致计算失败;同时,未排除NA的样本会干扰占比的准确性(因为NA不属于"使用飞机"或"未使用飞机"的任何一类)。
  • 如果需要统计情境2下**所有人群(包括flight_uses为NA的)**中的使用占比,可将总人数改为nrow(df_plane[df_plane$Situation == 2, ]),同时用sum(df_plane$flight_uses == 1 & df_plane$Situation == 2, na.rm = TRUE)计算使用人数,但这种统计逻辑需根据业务需求确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:30:46