Rでマルチレベルリストをトリミングする方法を知っている人はいますか? リストの各要素にいくつかのレベル (属性「生きている」、「年齢」、「色」など) があります。x$color=="blue"
たとえば次のような要素のみを含むようにリストをトリミングしたいと思います。
例
set.seed(1)
ind <- vector(mode="list", 20)
for(i in seq(ind)){
ind[[i]]$alive <- 1
ind[[i]]$age <- 0
ind[[i]]$color <- c("blue", "red")[round(runif(1)+1)]
}
keep <- which(sapply(ind, function(x) x$color) == "blue")
keep
#[1] 1 2 5 10 11 12 14 16 19
ind[[keep]] # doesn't work
#Error in ind[[keep]] : recursive indexing failed at level
次の回答NULL
に示すように、単一レベルのリストではクロッピングまたは への設定が可能ですが、マルチレベル リストでは機能しません。