r- 访问列表列表
r- access to lists of lists
我需要访问列表中列表的每个元素。假设我的列表是:
improve<-c('30/0', '60/0', '60/30', '90/60', '90/30', '90/0')
maintein<-c('0/0', '30/30', '60/60', '90/90')
worsen<-c('0/30', '30/60', '60/90', '60/NA', '90/NA')
我的最终名单是:
lista<-list(improve, maintein, worsen)
我需要对每个元素做某事:
for (k in lista) {
print(k)
for (i in lista[k]) {
print(i)
}
}
但我得到的是 NULL:
[1] "30/0" "60/0" "60/30" "90/60" "90/30" "90/0"
NULL
NULL
NULL
NULL
NULL
NULL
[1] "0/0" "30/30" "60/60" "90/90"
NULL
NULL
NULL
NULL
等等...
我该如何打印内幕名单的每个元素?
谢谢
这里注意:
for (k in lista) {
print(k)
for (i in lista[k]) {
print(i)
}
}
循环变量 k
是一个向量,因为您正在迭代 lista,它是一个向量列表。
因此改为:
for (k in lista) {
print(k)
for (i in k) {
print(i)
}
}
很可能是您需要的正确版本。
一种方式:
for (k in seq_along(lista) ) { # safer than 1:length(lista)
print(k)
for (i in lista[[k]]) {
print(i)
}
}
或者:
> for (k in seq_along(lista) ) {
+ print(k)
+ for (i in seq_along( lista[[k]] ) ) {
+ print(lista[[k]][i])
+ }
+ }
[1] 1
[1] "30/0"
[1] "60/0"
[1] "60/30"
[1] "90/60"
[1] "90/30"
[1] "90/0"
[1] 2
[1] "0/0"
[1] "30/30"
[1] "60/60"
[1] "90/90"
[1] 3
[1] "0/30"
[1] "30/60"
[1] "60/90"
[1] "60/NA"
[1] "90/NA"
我需要访问列表中列表的每个元素。假设我的列表是:
improve<-c('30/0', '60/0', '60/30', '90/60', '90/30', '90/0')
maintein<-c('0/0', '30/30', '60/60', '90/90')
worsen<-c('0/30', '30/60', '60/90', '60/NA', '90/NA')
我的最终名单是:
lista<-list(improve, maintein, worsen)
我需要对每个元素做某事:
for (k in lista) {
print(k)
for (i in lista[k]) {
print(i)
}
}
但我得到的是 NULL:
[1] "30/0" "60/0" "60/30" "90/60" "90/30" "90/0"
NULL
NULL
NULL
NULL
NULL
NULL
[1] "0/0" "30/30" "60/60" "90/90"
NULL
NULL
NULL
NULL
等等... 我该如何打印内幕名单的每个元素? 谢谢
这里注意:
for (k in lista) {
print(k)
for (i in lista[k]) {
print(i)
}
}
循环变量 k
是一个向量,因为您正在迭代 lista,它是一个向量列表。
因此改为:
for (k in lista) {
print(k)
for (i in k) {
print(i)
}
}
很可能是您需要的正确版本。
一种方式:
for (k in seq_along(lista) ) { # safer than 1:length(lista)
print(k)
for (i in lista[[k]]) {
print(i)
}
}
或者:
> for (k in seq_along(lista) ) {
+ print(k)
+ for (i in seq_along( lista[[k]] ) ) {
+ print(lista[[k]][i])
+ }
+ }
[1] 1
[1] "30/0"
[1] "60/0"
[1] "60/30"
[1] "90/60"
[1] "90/30"
[1] "90/0"
[1] 2
[1] "0/0"
[1] "30/30"
[1] "60/60"
[1] "90/90"
[1] 3
[1] "0/30"
[1] "30/60"
[1] "60/90"
[1] "60/NA"
[1] "90/NA"