gpt4 book ai didi

r - 为R中的列表元素赋值

转载 作者:行者123 更新时间:2023-12-05 09:19:53 27 4
gpt4 key购买 nike

假设我有一个元素列表,我想更改其中一个元素但不能直接通过名称调用列表(我只能将其构造为字符串)。

x_1 <- list()
for (i in 1 : 5) {
x_1[[i]] <- i
}

assign(eval(as.name(paste0("x_", 1)))[[1]], 6)

使用 assign-eval-as.name-paste 的长结构会给出错误:“第一个参数是错误的”

我该如何正确操作?为什么这种构造不起作用?

最佳答案

您可以通过使用 <- 构造赋值表达式来做到这一点然后使用 eval(parse(text=x)) :

x_1 <- as.list(1:5)
eval(parse(text=paste0("x_1[[1]] <-", 123)))

x_1
##
## [[1]]
## [1] 123
##
## [[2]]
## [1] 2
##
## [[3]]
## [1] 3
##
## [[4]]
## [1] 4
##
## [[5]]
## [1] 5

如果您想将索引作为变量传递,这可能更简单:

eval(parse(text=sprintf('x_1[[%s]] <- %s', 1, 123)))

关于r - 为R中的列表元素赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39190511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com