我想使用 rnorm()
创建随机变量,并在 tibble 的单独列中指定平均值和标准差
n <- 2
ti <- tibble(Name = letters[1:10], mean = 1:10, sd = 1:10)
如何使用 mutate 将 n 列添加到 tibble,并为每行输出 rnorm(n,mean,sd)
?
(我知道我可以在基础 R 中执行此操作,但我很好奇使用 dplyr
了解这是如何工作的)
最佳答案
一个 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
关于r - 具有多列输出的 mutate rnorm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62452639/