8

次のようなリストがあります。

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 リストを使用

4

3 に答える 3