繁体   English   中英

处理嵌套在R中的嵌套列表中的处理向量

[英]Process vector nested within a nested list in R

我有一个vector listlist ,如下所示:

myList = list(id1 = list(a=6:10,b=1:5),
              id2 = list(a=3:8,b = 4:9))

我想在每个列表中使用任意function (例如, meansum等)处理名为“b”的第二个vector ,并将结果附加到每个嵌套list的第三个命名vector ,以实现类似于:

myList2 = list(id1 = list(a=6:10,b=1:5,c = mean(1:5)),
          id2 = list(a=3:8,b = 4:9,c = mean(4:9)))

因此,我的问题有两个部分。 首先,如何在每个嵌套list中仅处理第二个命名vector 其次,如何将结果附加到每个嵌套list

我知道我可以编写一个始终索引myList[[i]][[2]]for循环,但我正在寻找一个矢量化解决方案。 我尝试使用各种组合apply -family与首先测试vector名称的匿名function ,例如:

rapply(myList, function(x) ifelse(names(x) == "b",
                              print("yes"),  #process vector
                              print("no")),  #move on to next x
   how = "list"
)

但结果没有多大意义。

附加信息:我使用嵌套list而不是data.frame因为我对每个id没有相同数量的观察,但我愿意接受可能绕过这些问题并适应不同数量观察的替代方法。

这应该做到这一点

lapply(myList, function(x) {
  x$c <- mean(x$b)
  return(x)
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM