【问题标题】:Tracking parent list in nested list在嵌套列表中跟踪父列表
【发布时间】:2019-09-08 06:25:39
【问题描述】:

我有一个需要迭代的嵌套循环。我想转到列表的末尾(在本例中为父列表的第二项),如果它不再是嵌套循环,则向其中添加项目。所以循环可能有很多层次的嵌套循环。现在,我只得到第二个列表作为回报。如何跟踪父列表?

a <- list( x = list(1,2,3),y =list(4,5,6))
 con=TRUE
 while(con){
 i <-length(a)
 for(k in i:i){
 if(!typeof(a[[k]])=="list"){
   a[[k+1]] <- "test"
   con=FALSE
  }else{
  a <- a[[k]]
   i <- length(a)
 }
 }
}


Expected Result:a <- list(x = list(1,2,3), y =list(4,5,6, "test"))
Result: a <- list(4,5,6,"test")

【问题讨论】:

    标签: r loops nested


    【解决方案1】:
    library(magrittr)
    a <- list( x = list(1,2,3),y =list(4,5,6), z = 1)
    
    temp <- lapply(a, typeof) %>% unlist
    tempList <- (temp!="list")
    
    if (sum(tempList) > 0) {
      a[[max(which(tempList == FALSE))]] %<>% append("test")
    } else {
      a[[length(a)]] %<>% append("test")
    }
    

    我不清楚你想做什么,但是 只专注于您的示例,这将起作用。

    简而言之,看看父列表的哪些元素不是Lists,对最后一个添加“test”。如果它们都是列表,则将“test”添加到最后一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多