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

在R语言中基于现有数据框生成带随机变异的新数据框的实现方法

方法1:使用dplyr包(最简洁高效)

如果你习惯使用tidyverse生态,用mutate()搭配across()可以快速完成操作,自动保留原列名:

library(dplyr)

# 仅对数值列执行随机化,非数值列自动保留(若所有列均为待处理数值,可替换为across(everything()))
r.camrysales <- camrysales %>%
  mutate(across(where(is.numeric), ~rnorm(n(), mean = .x, sd = 0.1*.x)))

方法2:Base R实现(无额外依赖)

不需要加载第三方包,用lapply遍历列即可,列名会自动继承原数据框:

# 筛选出所有数值列(如果全表都是待处理的数值列可跳过这步)
num_cols <- sapply(camrysales, is.numeric)
r.camrysales <- camrysales
# 对所有数值列执行随机化
r.camrysales[num_cols] <- lapply(camrysales[num_cols], function(col) {
  rnorm(length(col), mean = col, sd = 0.1*col)
})

补充说明

如果需要随机结果可复现,在运行上述代码前添加set.seed(自定义数字)即可,例如set.seed(123),每次运行都会生成相同的随机值。两种方法都完全保留原数据框的列名、结构,非数值列不会被修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:15:02