изменить rnorm с выводом нескольких столбцов - PullRequest
2 голосов
/ 18 июня 2020

Я хотел бы создать случайные переменные, используя rnorm() со средним значением и SD, указанными в отдельных столбцах в таблице

n <- 2
ti <- tibble(Name = letters[1:10], mean = 1:10, sd = 1:10)

Как мне использовать mutate для добавления n столбцов в таблицу с выводом из rnorm(n, mean, sd) для каждой строки?

(я знаю, что могу сделать это в базе R, но мне любопытно узнать, как это работает, используя dplyr)

1 Ответ

2 голосов
/ 18 июня 2020

Один вариант dplyr и tidyr может быть:

ti %>%
 rowwise() %>%
 mutate(col_rnorm = list(setNames(rnorm(n, mean, sd), c("col1", "col2")))) %>%
 unnest_wider(col_rnorm)

  Name   mean    sd  col1    col2
   <chr> <int> <int> <dbl>   <dbl>
 1 a         1     1 -1.73  1.18  
 2 b         2     2  3.86  0.0943
 3 c         3     3  3.54 -0.502 
 4 d         4     4  3.21 -3.90  
 5 e         5     5  3.61  9.48  
 6 f         6     6  7.07 16.1   
 7 g         7     7 17.4   5.95  
 8 h         8     8  5.32 13.6   
 9 i         9     9 19.2  19.8   
10 j        10    10  9.67 11.3 
...