Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用循环访问列表中的所有列表_R_List_Indexing_Subset - Fatal编程技术网

R 如何使用循环访问列表中的所有列表

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",

这是一个后续问题,我想在列表中创建一个列表,现在我想能够访问嵌套列表和其中的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", 
"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]]