在R中模拟和分配多个向量

时间:2015-04-26 19:43:48

标签: r vector rstudio

我正在尝试运行一些数据来比较Tukey和Bonferroni的方法,但不想模拟数据然后单独将其分配给矢量。

我目前正在这样做,但这太费时了。

v1 = c(rnorm(100, mean = 0, sd = 1))
v2 = c(rnorm(100, mean = 0, sd = 1))
v3 = c(rnorm(100, mean = 0, sd = 1)) 

我正在尝试复制,但无法使这些功能可用 我该怎么做?

> I = 3 #number of populations
> J = 10 #number of samples per
> replicate(I,data.frame(c(rnorm(J, mean = 0, sd = 1))))
$c.rnorm.J..mean...0..sd...1..
 [1]  0.47157860  0.36176156 -0.58902072 -0.14258664  0.35517119 -0.46813092 -0.03242732  0.68066082
 [9] -0.19652503  0.57674030

$c.rnorm.J..mean...0..sd...1..
 [1] -0.9107527 -0.1498868  1.7936493  0.2083297 -0.2178705 -0.8321252 -1.0367427  1.1417998 -0.7209510
[10] -0.1906778

$c.rnorm.J..mean...0..sd...1..
 [1] -1.6571571 -0.3131047  1.3253667  0.1691123  1.7925107  0.5994749  0.5405659  1.1630389  3.1745593
[10]  0.8812708

提前致谢。

2 个答案:

答案 0 :(得分:0)

以下是我的试用版。在您的情况下,它应该是rep(100, 3)

set.seed(1237)
lapply(rep(10, 3), rnorm, mean = 0, sd = 1)
[[1]]
[1] -0.4448532 -1.9732164 -0.8559826  1.7137530  0.9392717 -1.1769761 -0.9256115
[8]  0.0336911  0.8581240 -0.3075549

[[2]]
[1] -0.02058666  1.81681629 -1.13020054  1.00108987  1.06564415  2.44900776
[7]  0.07325534 -0.60973790 -0.28549277 -1.27718700

[[3]]
[1]  0.71017604  0.14531931 -0.09999525 -1.05494900  0.34294721  0.17487679
[7]  0.02907445 -1.60803324  1.61825097  0.38081074

答案 1 :(得分:0)

与Jaehyeon Kim上面提出的相似:

> vs <- lapply(1:3, function(x) rnorm(100,0,1))
> str(vs)

...生成长度为100的数字向量列表:

List of 3
 $ : num [1:100] 0.367 1.549 0.453 -0.374 -0.105 ...
 $ : num [1:100] 0.254 -0.333 -1.732 -0.213 2.001 ...
 $ : num [1:100] -0.07771 -0.00472 -0.89804 -0.90337 -0.73967 ...

当你说,&#34;太耗费时间&#34;你的意思是键入或运行?这对我来说非常快。