【发布时间】:2013-01-17 07:44:16
【问题描述】:
我有一个类似的列表:
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]
}
这是对我之前的问题update a node (of unknown depth) using xpath in R? 的改编,使用 R 列表而不是 XML
【问题讨论】: