【发布时间】:2018-10-17 14:21:26
【问题描述】:
我想使用 SimMultiCorrData 中的 nonnormvar1 函数生成随机的非正态变量。这个函数本身就可以正常工作并输出一个连续变量:
nonnormvar1(method = "Fleishman", means = 50, vars = 10,
skews = 3, skurts = 14, n=100)
但是当我在自己的函数中“映射”nonnormvar1 时,我会得到数据列表行作为输出:
my_func <- function(sample_pairs, sig_pairs, nnorm_pairs) {
return(sapply(1:nrow(sample_pairs), function(i) {
mapply(nonnormvar1, method = "Fleishman",
means = mu, vars = sig_pairs[i, ],
skews = nnorm_pairs[i,1], skurts = nnorm_pairs[i,2],
n = sample_pairs[i], seed = 123)
}))
}
samples <- matrix(c(rep(c(100, 100), 6), rep(c(50, 50), 6)),
ncol = 2, byrow = TRUE)
sigs <- matrix(c(rep(c(2, 2), 6), rep(c(35, 35), 6)),
ncol = 2, byrow = TRUE)
nnrom <- matrix(c(rep(c(0, 0), 4), rep(c(2, 4), 4), rep(c(1, 5), 4)),
ncol = 2, byrow = TRUE)
my_func(samples, sigs, nnrom)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] List,4 List,4 List,4 List,4 List,4 List,4 List,4 List,4 List,4 List,4 List,4 List,4
[2,] List,1 List,1 List,1 List,1 List,1 List,1 List,1 List,1 List,1 List,1 List,1 List,1
[3,] List,11 List,11 List,11 List,11 List,11 List,11 List,11 List,11 List,11 List,11 List,11 List,11
理想情况下,我想要 12 个包含两个变量的数据帧,每个变量我都可以计算出一个统计数据。我确定有一些明显的东西我错过了,但我没有看到。
【问题讨论】:
标签: r random distribution mapply