列表中每个矩阵的for循环

列表中每个矩阵的for循环,r,list,dataframe,for-loop,R,List,Dataframe,For Loop,我正在尝试将以下for循环应用于列表中的每个矩阵per\u d,并创建一个名为per\u-hole的新列表。我不知道怎么做,我应该使用lapply吗 非常感谢您的帮助 per_hole <- per_d for (i in 1:S) { for (j in 1:t){ if (per_hole [i,j] > CS) { per_hole [i,j] <- per_hole [i,j] - rnorm (1, mean = 1, sd = 0.5)

我正在尝试将以下for循环应用于列表中的每个矩阵
per\u d
,并创建一个名为
per\u-hole
的新列表。我不知道怎么做,我应该使用lapply吗

非常感谢您的帮助

per_hole <- per_d
  for (i in 1:S) {
    for (j in 1:t){
  if (per_hole [i,j] > CS) {
    per_hole [i,j] <- per_hole [i,j] - rnorm (1, mean = 1, sd = 0.5)
  } else {
    per_hole [i,j] <- per_hole [i,j] + rnorm (1, mean = 1, sd = 0.5)
  }}}
per_孔CS){
每孔[i,j]你可以试试

per_hole <- lapply(per_d,function(x) x + ifelse(x>CS,-1,1)*rnorm(prod(dim(x)),1,0.5))
per_-hole CS,-1,1)*rnorm(产品尺寸(x)),1,0.5))

per_-hole CS),0.5)

Hi,这个解决方案真的很聪明!谢谢!我还可以问一下,如果我想“如果x属于第4行,返回0,我应该怎么做?”我尝试了
per_-hole CS,-1,1))*rnorm(prod(dim(x)),1,0.5))
@KennyYu Try
per_-hole CS,0.5)*替换(rep(1,nrow(x),4,0))
这个错误消息在rep(rep(1,nrow(x),4,0))中弹出了错误消息:参数“values”丢失,没有默认值。我想这是因为peru_d是一个包含多个数据帧的列表?@KennyYu抱歉,我的错。我输入了一个错误。下面是一个可以工作的
replace(rep(1,nrow(x)),4,0)
@KennyYu
rep(rep(1,nrow(x)),4,0)
创建除第四位以外的1矢量。我们将其用作掩码,以使第四行为零。
per_hole <- lapply(per_d,function(x) x + ifelse(x>CS,-1,1)*rnorm(prod(dim(x)),1,0.5))
per_hole <- lapply(per_d, function(x) x + rnorm(prod(dim(x)), 1-2*(x > CS), 0.5))