我需要以編程方式回圈遍歷 R 中的串列名稱來更新串列元素。
有沒有辦法使用某種非標準評估或其他方法來做到這一點?
最小示例的偽代碼:
x = list(a=1)
y = list(a=3)
for(i in c("x", "y")){
i[["a"]] <- 10
}
預期成績:
x[["a"]] == 10
y[["a"]] == 10
編輯:我發現這種方式可以直接更新值,而無需通過以下方式復制串列get(i)
:
x = list(a=1)
y = list(a=3)
.env = pryr::where("x")
for(i in c("x", "y")){
.env [[ i ]] [[ "a" ]] <- 10
}
uj5u.com熱心網友回復:
,是字串"x"
,"y"
我們需要get
值以及assign
for(i in c("x", "y")) {
tmp <- get(i)
tmp[["a"]] <- 10
assign(i, tmp)
}
-檢查
> x
$a
[1] 10
> y
$a
[1] 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527004.html
標籤:r非标准评价
上一篇:當包裝在renderUI和htmlOutput中時如何克服shinyDashboardvalueBox中的寬度引數被忽略