如何为R中向量的特定元素分配名称
Posted
技术标签:
【中文标题】如何为R中向量的特定元素分配名称【英文标题】:How to assign a name to a specific element of a vector in R 【发布时间】:2016-05-12 07:19:18 【问题描述】:我的问题是:如何为 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
对于如何解决此问题,我将不胜感激。谢谢!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何为R中向量的特定元素分配名称的主要内容,如果未能解决你的问题,请参考以下文章