次のようなリストがあります。
mylist <- list(a = 1, b = list(A = 1, B = 2), c = list(C = 1, D = 3))
要素の位置を識別する (ループのない) 方法はありますか。たとえば、「C」の値を 5 に置き換えたい場合、要素「C」がどこにあるかは問題ではありません。お気に入り:
Aindex <- find_index("A", mylist)
mylist[Aindex] <- 5
を試しgrepl
ましたが、現在の例では、次のように動作します。
mylist[grepl("C", mylist)][[1]][["C"]]
ただし、これにはネストレベルの仮定が必要です。
私が尋ねる理由は、パラメーター値の詳細なリストと、置換値の名前付きベクトルがあり、次のようなことをしたいからです。
replacements <- c(a = 1, C = 5)
for(i in names(replacements)){
indx <- find_index(i, mylist)
mylist[indx] <- replacements[i]
}
これは私の以前の質問への適応です, update a node (未知の深さ) using xpath in R? 、XML の代わりに R リストを使用