如何为R中向量的特定元素分配名称

How to assign a name to a specific element of a vector in R

我的问题是:如何在 R 中为向量的特定元素指定名称,特别是使用 assign(x, value) 函数。

通常,要为向量的特定元素赋值,我会这样做:

agent1[2] <- TRUE

但是,这对我来说是不可能的,因为我的(预先分配的)变量在 for 循环中被调用如下:

for (i in 1:10) {
assign(paste("agent", i, "[2]", sep=""), TRUE)
}

不幸的是,assign 函数似乎无法为向量 中的特定元素赋值!所以虽然下面

for (i in 1:10) {
assign(paste("agent", i, "[2]", sep=""), TRUE)
}

确实可以将 TRUE 值分配给 agent1 到 agent10,我无法分辨出它 仅将值分配给每个代理中的第一个(或第 n 个)元素载体。

在一个简单的例子中,可以看到如下:

a <- 1:4
a[1] <- 2
a[1] == 2           # TRUE

然而,

a <- 1:4
assign("a[1]", 2)
a[1] == 2          # FALSE

对于如何解决此问题的任何帮助,我将不胜感激。谢谢!

我们可以试试

assign('a', `[<-`(a, 1, 2))
a[1]==2
#[1] TRUE

如果我们需要更改索引范围的值,即第一个 3 个值更改为 2

assign('a', `[<-`(a, 1:3, 2))
a
#[1] 2 2 2 4