[英]Process vector nested within a nested list in R
我有一個vector
list
的list
,如下所示:
myList = list(id1 = list(a=6:10,b=1:5),
id2 = list(a=3:8,b = 4:9))
我想在每個列表中使用任意function
(例如, mean
, sum
等)處理名為“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.