如何存储我在R中创建的值

如何存储我在R中创建的值,r,R,如何在R中存储值?我想生成四个K值并将其存储在m[1]中,因此我有m[1,1],m[1,2],m[1,3],m[1,4]。然后生成第二组四个K值并存储在m[2]中,这样我就有m[2,1],m[2,2],m[2,3],m[2,4]。我尝试了此程序,但收到以下错误消息: 1: In m[j] = Cp[1:4] : number of items to replace is not a multiple of replacement length 2: In m[j] = Cp[1:4] :

如何在R中存储值?我想生成四个
K
值并将其存储在
m[1]
中,因此我有
m[1,1]
m[1,2]
m[1,3]
m[1,4]
。然后生成第二组四个
K
值并存储在
m[2]
中,这样我就有
m[2,1]
m[2,2]
m[2,3]
m[2,4]
。我尝试了此程序,但收到以下错误消息:

1: In m[j] = Cp[1:4] :
  number of items to replace is not a multiple of replacement length
2: In m[j] = Cp[1:4] :
  number of items to replace is not a multiple of replacement length

k=numeric()
k[1]=0
for (j in 1:2) {
  for (count in 1:3) {
    k[count+1]=k[count]+rnorm(1,0,1)
  }
  m[j]=k[1:4]
}

您的行是正态分布样本的累积总和;您可以通过以下方式获得:

set.seed(144)
t(sapply(1:2, function(row) c(0, cumsum(rnorm(3, 0, 1)))))
#      [,1]      [,2]      [,3]      [,4]
# [1,]    0 -1.650556 -1.047746 -1.521630
# [2,]    0 -1.797613 -3.218734 -3.059847

虽然josilber的答案很好地用了R-speak(我建议使用它),但要理解代码为什么不能工作,请考虑以下几点

m在循环之前的任何地方都没有定义,但是假设它被定义为一个数值(),比如k,这意味着它是一个向量

你打电话

m[j]<-k[1:4]  

m[j]所以m[[1]]将包含四个数字的列表,类似于m[[2]]等。我如何在不写m[[1][1]+m[[2][1]的情况下将m[[1]]的第一个元素添加到m[[2]]的第一个元素。好问题。有几种方法可以做到这一点。我可能会通过调用结果为每个列表元素的第一个元素创建一个向量。我可以使用您的方法来改进这段代码吗?这段代码执行时间太长,无法提高效率。m=矩阵(01000010000)(j=1:10000){(i=2:10000){x=rnorm(1,0,1)m[j,i]=max(0,x-0.5+m[j,i-1]))}meanC=apply(m,2,平均值);meanC@user3327637你当然可以让它更快,但它有点复杂。请将此代码作为一个新问题发布,并询问如何加速,我将在那里发布答案。
m[[j]]<-k[1:4]