如何为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
我的问题是:如何在 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