簡體   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