立方体中的每个点都有三个值(X,Y和Z轴)。 R
中有一些内置函数,涉及具有单个随机数(每个观察值一个数字)的集合的生成,例如runif()
,sample()
,rnorm()
, set.seed()
等。以类似的逻辑思考,数字是在单个轴上生成的,具有这些功能。
我的问题是:
答案 0 :(得分:4)
考虑到多维数据集的情况,runif
可以非常灵活地实现所有目标。特别是,我们可以指定要生成的点数,并且对于每个轴,我们还可以指定不同的范围。例如,
lower <- c(0, 10, 20)
upper <- c(1, 11, 21)
n <- 5
matrix(runif(n * 3, lower, upper), ncol = 3, byrow = TRUE)
# [,1] [,2] [,3]
# [1,] 0.03372777 10.99940 20.03487
# [2,] 0.33839128 10.91506 20.61724
# [3,] 0.28628535 10.73780 20.83405
# [4,] 0.31427078 10.49257 20.69737
# [5,] 0.64146235 10.64392 20.97785
rnorm
,rbeta
等同样适用。
对此进行不同的思考,您想从多变量分布中抽样,也许我们甚至还存在一定的依赖性。为此,还具有一些功能,例如?mvrnorm
包中的MASS
或?rdirichlet
中的MCMCpack
。但是,例如,当处理点在立方体中均匀分布时,遵循上述方法是标准的,并且,如果需要,您可以为具有独立分量的多元均匀分布定义相应的函数。