#r #dataframe
Вопрос:
Я хотел бы создать новый фрейм данных из существующего фрейма данных, где каждое значение является случайной величиной. Более конкретно,в новом фрейме данных значение (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 #r #dataframe
Вопрос:
Я хотел бы создать новый фрейм данных из существующего фрейма данных, где каждое значение является случайной величиной. Более конкретно,в новом фрейме данных значение (i, j) является случайной величиной, которая следует нормальному распределению со средним значением (i,j) из существующего фрейма данных и стандартным отклонением 0,1*(i,j). Ниже я сделал это для одного столбца фрейма данных. Есть ли способ сделать это эффективно для всех столбцов фрейма данных? И сделать так, чтобы новый фрейм данных имел те же имена столбцов, что и существующий фрейм данных? Units Sold`, sd = 0.1*camrysales #r #dataframe
Вопрос:
Я хотел бы создать новый фрейм данных из существующего фрейма данных, где каждое значение является случайной величиной. Более конкретно,в новом фрейме данных значение (i, j) является случайной величиной, которая следует нормальному распределению со средним значением (i,j) из существующего фрейма данных и стандартным отклонением 0,1*(i,j). Ниже я сделал это для одного столбца фрейма данных. Есть ли способ сделать это эффективно для всех столбцов фрейма данных? И сделать так, чтобы новый фрейм данных имел те же имена столбцов, что и существующий фрейм данных? Units Sold`)
Ответ №1:
Вы можете сделать это с помощью lapply
—
r.camrysales <- camrysales
r.camrysales[] <- lapply(camrysales, function(x) rnorm(nrow(camrysales), mean = x, sd = 0.1*x))
r.camrysales
Или использовать across
в dplyr
—
library(dplyr)
r.camrysales <- camrysales %>% mutate(across(.fns = ~rnorm(n(), ., 0.1 * .)))