提问人:Aydin Mohseni 提问时间:2/3/2016 更新时间:2/3/2016 访问量:1916
如何在 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
我将不胜感激有关如何解决这个问题的任何帮助。谢谢!
答:
2赞
akrun
2/3/2016
#1
我们可以尝试
assign('a', `[<-`(a, 1, 2))
a[1]==2
#[1] TRUE
如果我们需要更改索引范围的值,即第一个 3 值为 2
assign('a', `[<-`(a, 1:3, 2))
a
#[1] 2 2 2 4
评论