如何将CSV文件中指定比例(如5%)的数据随机替换为NA?
两种方案:Excel函数 & R语言实现随机替换5%数据为NA
Excel 操作步骤
- 打开目标CSV文件,先复制所有数据到旁边空白区域(避免修改原数据)
- 在新数据区域的第一个单元格输入公式:
=IF(RAND()<=0.05, NA(), 原数据单元格)(比如原数据在A1,就写=IF(RAND()<=0.05, NA(), A1)) - 拖拽或双击单元格右下角的十字光标,把公式填充到整个数据区域
- 选中整个新数据区域,右键选择「复制」,再右键选择「粘贴为值」,固定随机生成的结果(不然每次刷新表格,随机NA的位置会变)
R语言操作步骤(适合新手的极简流程)
- 打开R或RStudio,先安装读取CSV的工具包:
输入代码install.packages("readr")按回车,等待安装完成后,输入library(readr)加载包 - 设置工作目录(把你的CSV文件放到这个文件夹里):
输入setwd("你的文件所在文件夹路径"),比如setwd("C:/Users/你的用户名/Documents");不确定路径的话,可右键CSV文件选「属性」查看 - 读取CSV文件:
输入df <- read_csv("你的文件名.csv")(比如文件叫data.csv,就写df <- read_csv("data.csv")) - 随机替换5%数据为NA:
直接复制这段代码运行:total_cells <- nrow(df) * ncol(df) na_count <- round(total_cells * 0.05) na_positions <- sample(total_cells, na_count) df[na_positions] <- NA - 保存处理后的文件:
输入write_csv(df, "处理后文件名.csv")(比如write_csv(df, "data_with_na.csv")),处理后的文件会出现在你设置的工作目录里
内容的提问来源于stack exchange,提问作者amahd
相关产品推荐
相关产品推荐

