我已经使用以下命令创建了1000个随机向量实现的列表:
然后,我想找到每个实现的经验方差。我试图在我的模拟数据上使用“var”函数,但是我收到一个错误,告诉我输入不是原子的。 任何人都可以帮助智能解决方案吗?复制(1000,矩阵(rnorm(1 * 10,mean = 0,sd = 1),1,10))
答案 0 :(得分:0)
您可以在不创建3D阵列的情况下执行此操作。这是一个小例子:
# 3 realizations of a random vector
set.seed(1)
x = replicate(3, rnorm(5,mean=0,sd=1) )
[,1] [,2] [,3]
[1,] -0.6264538 -0.8204684 1.5117812
[2,] 0.1836433 0.4874291 0.3898432
[3,] -0.8356286 0.7383247 -0.6212406
[4,] 1.5952808 0.5757814 -2.2146999
[5,] 0.3295078 -0.3053884 1.1249309
apply
将函数应用于每列(在本例中)或矩阵或数据帧的行。在这种情况下,我们将var
函数应用于矩阵x
的每一列。要按行申请,请将MARGIN
设置为1而不是2。
# Calculate variance of each random vector
apply(x, 2, var)
[1] 0.9235968 0.4473392 2.2466246