R 如何使用循环访问列表中的所有列表
这是一个后续问题,我想在列表中创建一个列表,现在我想能够访问嵌套列表和其中的peform函数 我有一个3人名单,其中有两人:R 如何使用循环访问列表中的所有列表,r,list,indexing,subset,R,List,Indexing,Subset,这是一个后续问题,我想在列表中创建一个列表,现在我想能够访问嵌套列表和其中的peform函数 我有一个3人名单,其中有两人: my_list structure(list(a = structure(list(a = structure(list(value = c(1L, 4L), class = structure(c(1L, 1L), .Label = c("a", "b", "c"), class = "factor")), .Names = c("value",
my_list
structure(list(a = structure(list(a = structure(list(value = c(1L,
4L), class = structure(c(1L, 1L), .Label = c("a", "b", "c"), class = "factor")), .Names = c("value",
"class"), row.names = c(1L, 4L), class = "data.frame"), b = structure(list(
value = c(2, 1), class = structure(c(2L, 2L), .Label = c("a",
"b", "c"), class = "factor")), .Names = c("value", "class"
), row.names = c(2L, 5L), class = "data.frame")), .Names = c("a",
"b")), b = structure(list(a = structure(list(value = c(6, 1),
class = structure(c(1L, 1L), .Label = c("a", "b", "c", "d"
), class = "factor")), .Names = c("value", "class"), row.names = c(1L,
5L), class = "data.frame"), b = structure(list(value = c(5, 1
), class = structure(c(2L, 2L), .Label = c("a", "b", "c", "d"
), class = "factor")), .Names = c("value", "class"), row.names = c(2L,
6L), class = "data.frame")), .Names = c("a", "b")), c = structure(list(
a = structure(list(value = 5:6, class = structure(c(1L, 1L
), .Label = c("a", "b", "c", "d", "e"), class = "factor")), .Names = c("value",
"class"), row.names = 5:6, class = "data.frame"), b = structure(list(
value = c(4, 1), class = structure(c(2L, 2L), .Label = c("a",
"b", "c", "d", "e"), class = "factor")), .Names = c("value",
"class"), row.names = c(4L, 7L), class = "data.frame")), .Names = c("a",
"b"))), .Names = c("a", "b", "c"))
$a
$a$a
value class
1 a
4 a
$a$b
value class
2 b
1 b
$b
$b$a
value class
6 a
1 a
$b$b
value class
5 b
1 b
$c
$c$a
value class
5 a
6 a
$c$b
value class
4 b
1 b
我想通过value!=1
以使生成的列表如下所示:
my_list
$a
$a$a
value class
4 a
$a$b
value class
2 b
$b
$b$a
value class
6 a
$b$b
value class
5 b
$c
$c$a
value class
5 a
6 a
$c$b
value class
4 b
使用下面的代码,我只能访问列表[[1]][[1]]
,列表[[2]][[2]]
和列表[[3][[3]]
。我如何使用循环访问其他对象并应用子集
函数
for (i in 1:length(my_list)) {
my_list[[i]][[i]] <- subset(my_list[[i]][[i]],my_list[[i]][[i]]$value=1)
}
for(i in 1:length(我的列表)){
我的列表[[i]][[i]]我们可以使用嵌套的lappy
或与rappy
lapply(my_list, function(x) lapply(x, function(y) subset(y, value!=1)))
#$a
#$a$a
# value class
#4 4 a
#$a$b
# value class
#2 2 b
#$b
#$b$a
# value class
#1 6 a
#$b$b
# value class
#2 5 b
#$c
#$c$a
# value class
#5 5 a
#6 6 a
#$c$b
# value class
#4 4 b
对于那些想知道如何对这个问题进行嵌套循环的人,我可以帮助他们解决这个问题:
for (i in 1:length(my_list)) {
for (j in 1:2) {
my_list[[i]][[j]] <- subset(my_list[[i]][[j]],my_list[[i]][[j]]$value!=1)
}
}
for(i in 1:length(我的列表)){
对于(1:2中的j){
我的清单[[i][[j]]我注意到你没有链接到你昨天提出的关于这个主题的问题。如果这两个问题不同,请说明这是一个多么好的主意,已经编辑好了。现在修复好了。我真的应该学习如何使用Lappy。使用循环是不可能的吗?@Bonono你有一个嵌套循环,一种方法是通过循环或co遍历嵌套循环将其转换为单个数据集,过滤“值”,然后再次转换回嵌套表单(这是不必要的复杂)我同意,你这样说听起来很可笑。谢谢你的帮助,阿克伦,你一直都很了不起。我一定会在我的博士学位上感谢你!@Bonono谢谢你的好话。我想知道如何能够像我想学的那样通过嵌套循环。我想我需要这样做双击它,这样我就可以访问列表[[1]][[2]]
和列表[[2]][[1]]
?在子集中,您只需使用值!=1
,即我的列表[[I][[j]]