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

R语言新手咨询各时间点'i'占比及均值的计算方法

R实现:分时间点计算'i'占比并求解平均的方案

需求对应逻辑

你的核心统计流程分为两步:

  • 逐时间点计算占比:每个时间点列单独统计「取值为'i'的样本数」/「该列剔除NA后的有效总样本数」
  • 汇总求平均:将所有时间点算出的占比取算术平均值

现有代码的适配说明

你当前编写的脚本是将2-8列中所有满足'i'的样本合并后统计总长度,没有按单个时间点拆分计算占比,无法直接匹配目标需求;脚本中针对第8列'bc'、第12列'bc'的计数属于独立的其他统计任务,和本次计算流程无关联。

可直接运行的实现代码

以下代码适配你当前的数据集C16.3,逻辑和你手动过滤NA的习惯完全一致,不需要额外安装第三方包:

# 1. 提取所有时间点对应的列(根据你之前的代码设定为第2-8列)
timepoint_data <- C16.3[, 2:8]

# 2. 逐列计算单时间点的统计值
# 计算每列的有效总样本数(剔除NA)
valid_sample_count <- colSums(!is.na(timepoint_data))
# 计算每列取值为'i'的样本数(na.rm=TRUE自动排除NA值的干扰)
i_value_count <- colSums(timepoint_data == "i", na.rm = TRUE)
# 计算每个时间点的'i'占比
timepoint_i_ratio <- i_value_count / valid_sample_count

# 3. 对所有时间点的占比求平均值
final_average_ratio <- mean(timepoint_i_ratio, na.rm = TRUE)

# 结果查看命令
timepoint_i_ratio # 输出每个时间点的具体占比
final_average_ratio # 输出最终的平均占比结果

代码说明:上述计算逻辑中,占比分母已经剔除所有NA值,和你之前手动加!is.na()过滤的规则完全一致,不会把缺失样本算入有效基数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 06:54:03