R-列表矩阵中的列表元素访问和操纵



我创建了一个不同长度列表的矩阵。列表的长度由相同形状的矩阵中的元素确定。

我需要访问列表的元素。

myMatrix <- matrix(list(), nrow=Sims, ncol=Scens)    
for (i in 1:Scens) {      
  for (j in 1:Sims) {
    bin <- list(c(rlnorm(Frequency_matrix[j, i], meanlog=mu[i], sdlog=sigma[i])))
    if (Frequency_matrix[j,i] == 0){
      myMatrix[j, i] <- list(0)
    } else {
      myMatrix[j, i] <- bin
    }
  }
}

然后出现元素[1, 22]的输出:

[1] 1665085 1444953 1393626 1076812 2187266

,是列表类。但是,列表为长度1。看来列表正在变平。

我无法访问此列表的元素。我希望能够使用:

访问元素
myMatrix[1,22][[2]]

使用它,我的目标是根据单个列表元素的总和将秩相关应用于矩阵。但是,我也必须能够单独访问每个列表元素。

创建普通的数字向量而不是列表,而不是分配给myMatrix[i, j]这样的myMatrix[[i, j]]

nr <- 4; nc <- 2
myMatrix <- matrix(list(), nr, nc)
for (i in 1:nr) {
  for (j in 1:nc) {
    myMatrix[[i, j]] <- c(i, j)
  }
}
myMatrix[[3, 2]]
## [1] 3 2

尝试

myMatrix[1,22][[1]][2]

对于存储在第一行列表中的向量中的第二个项目和矩阵的第22列:)

最新更新