我创建了一个长度可变的列表矩阵。列表的长度由相同形状的矩阵中的元素确定。
我需要访问列表中的元素。
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]]
基于此,我旨在基于各个列表元素的总和将秩相关应用于矩阵。但是,我还必须能够分别访问每个列表元素。
答案 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列的第一个列表项中的向量中的第二项:)