我有一个类似的列表:
mylist <- list(a = 1, b = list(A = 1, B = 2), c = list(C = 1, D = 3))
是否有一种(无循环)方法来识别元素的位置,例如,如果我想用 5 替换“C”的值,并且在哪里找到元素“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]
}
这是对我之前的问题的改编,在 R 中使用 xpath 更新节点(深度未知)?,使用 R 列表而不是 XML