【问题标题】:Creating a new data frame with random variation in r在 r 中创建具有随机变化的新数据框
【发布时间】:2021-09-22 14:06:01
【问题描述】:

我想从现有数据框创建一个新数据框,其中每个值都是一个随机变量。更具体地说,在新数据帧中,值 (i,j) 是一个随机变量,它遵循正态分布,现有数据帧的平均值为 (i,j),标准差为 0.1*(i,j)。

下面我已经为数据框的一列做了这个。有没有办法对数据框的所有列有效地做到这一点?并使新数据框与现有数据框具有相同的列名?

#data frame with 10 variables
camrysales <- read_excel("camrysales.xlsx", sheet = "10var", skip = 1)

#randomizing Units Sold column
r.camrysales <- rnorm(nrow(camrysales), mean = camrysales$`Units Sold`, sd = 0.1*camrysales$`Units Sold`)

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    您可以使用lapply 执行此操作-

    r.camrysales <- camrysales
    r.camrysales[] <- lapply(camrysales, function(x)  rnorm(nrow(camrysales), mean = x, sd = 0.1*x))
    r.camrysales
    

    或者在dplyr 中使用across -

    library(dplyr)
    r.camrysales <- camrysales %>% mutate(across(.fns = ~rnorm(n(), ., 0.1 * .)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      相关资源
      最近更新 更多