我正在尝试在每个向量中创建10个具有10个值的向量,并且值应该具有正态分布。矢量应该是v1,v2,v3 ......
我试过循环但语法:
for(i in 1:10) {
v[i] <- rnorm(10)
}
没用。我尝试了很多种类,但没有结果,也没有在网上找到任何解决方案。
答案 0 :(得分:2)
创建大量“松散”向量并不是一个好主意。最好以合适的形式收集它们,例如,在matrix
,list
或data.frame
(一种list
)中。然后,您可以通过各种子集技术访问各个元素(请参阅?Extract
和here。
在您的情况下,您可以尝试例如replicate
:
m <- replicate(n = 10, expr = rnorm(10))
m
这会产生一个包含n
列的矩阵,其中每列都是expr
的结果,即rnorm(10)
。
答案 1 :(得分:1)
在R
中,没有矢量矢量。您可以使用matrix
或异构数据结构(如list
)使用2D模拟
有关详细信息,请参阅:http://adv-r.had.co.nz/Data-structures.html
matrix
方法是:
matrix(rnorm(100),nrow=10)
list
approch将是:
lapply(1 : 10, function (i) rnorm(10))
答案 2 :(得分:0)
矢量通常不能嵌套(即你不能有矢量矢量)。 R有一个特殊形式 - list
。
v = lapply(1 : 10, function (i) rnorm(10))
通常,您希望将其表示为data.frame
,但是:
setNames(data.frame(v), NULL)
(setNames
用于删除R自动生成的错误列名。)