访问和操作列表矩阵中的列表元素

时间:2019-02-20 12:48:56

标签: r list matrix

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

我需要访问列表中的元素。

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]]

基于此,我旨在基于各个列表元素的总和将秩相关应用于矩阵。但是,我还必须能够分别访问每个列表元素。

2 个答案:

答案 0 :(得分:1)

创建普通数字矢量而不是列表,而不是像这样分配给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

答案 1 :(得分:0)

尝试

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

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