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

在R数据集指定列创建随机人工缺失值以测试Random Forest精度

在数据集指定列随机添加5-10%的人工缺失值(NA)

需求说明

需在数据集的ch4_flux_gaps列中随机生成占比5%-10%的人工缺失值(NA),用于测试Random Forest模型的预测精度。初始时ch4_flux与ch4_flux_gaps列数值完全一致,仅对后者进行缺失值处理。

示例数据集

TIMESTAMP <- c(2001:2020)
ch4_flux <- c(67.36, 66.39, 65.39, 64.41, 63.52, 62.76, 62.16,61.76, 61.54,61.53,61.7,62.05,62.52, 63.09, 63.71, 64.33, 64.92, 65.46, 65.93, 66.32)
ch4_flux_gaps <- c(67.36, 66.39, 65.39, 64.41, 63.52, 62.76, 62.16,61.76, 61.54,61.53,61.7,62.05,62.52, 63.09, 63.71, 64.33, 64.92, 65.46, 65.93, 66.32)
distance <- c(1000,1000,1000,125.35,1000,1000,1000,5.50,1000,1000,1000,1000, 1000,1000,179.65,1000,1000,1000,1000,1000)
CowNum <- c(0, 0, 0, 30, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0)
dd <- data.frame(TIMESTAMP, ch4_flux, ch4_flux_gaps, distance,CowNum)

期望处理效果示例

处理后ch4_flux_gaps列示例:

ch4_flux_gaps <- c(67.36, 66.39, 65.39, NA, 63.52, NA, 62.16,61.76, 61.54,61.53,61.7,62.05,NA, 63.09, 63.71, 64.33, 64.92, 65.46, NA, NA)

实现代码

以下是在R中实现随机添加5%-10%缺失值的代码:

# 设置随机种子保证结果可重复
set.seed(123)

# 获取ch4_flux_gaps列的行数
total_rows <- nrow(dd)

# 随机生成要设置为NA的行数(占比5%-10%)
na_count <- sample(round(total_rows*0.05):round(total_rows*0.1), 1)

# 随机选择对应行数的索引
na_indices <- sample(total_rows, na_count)

# 将选中的索引位置设置为NA
dd$ch4_flux_gaps[na_indices] <- NA

# 查看处理后的结果
dd$ch4_flux_gaps

代码说明

  • set.seed(123):固定随机种子,确保每次运行代码生成的缺失值位置一致,便于复现结果。
  • na_count:通过sample函数在5%到10%的行数范围内随机选取要设置为NA的数量。
  • na_indices:从所有行索引中随机挑选对应数量的位置,保证缺失值分布随机。
  • 最后将选中位置的ch4_flux_gaps值替换为NA。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:23:17