【发布时间】:2021-01-10 10:52:13
【问题描述】:
我有一个代码可以从指定分布(例如统一)中生成 5 个随机变量 并将其放在 5x2 矩阵的第一列
my.data <- data.frame(matrix(nrow = 5, ncol = 2))
colnames(my.data) <- c("unif", "norm")
set.seed(1)
my.data[, 1] <- runif(5)
看起来像这样
unif norm
1 0.2655087 NA
2 0.3721239 NA
3 0.5728534 NA
4 0.9082078 NA
5 0.2016819 NA
我想使用生成的随机变量作为另一个分布(例如正态)的参数, 也就是说,我想从均值等于均匀分布随机变量的值、标准差等于随机变量的值*0.1的正态分布中采样。
my.data[, 2] <- rnorm(1, mean = my.data$unif, sd = my.data$unif*0.1)
my.data[, 2] <- rnorm(1, mean = my.data[,1], sd = my.data[,1]*0.1)
我用两种方式编写了代码,但得到了相同的结果。
unif norm
1 0.2655087 0.2992928
2 0.3721239 0.2992928
3 0.5728534 0.2992928
4 0.9082078 0.2992928
5 0.2016819 0.2992928
第二列中的所有值都相同。 如何更改代码,以便使用第一列中的值作为参数在第二列中生成随机变量?
【问题讨论】:
标签: r