如何为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中向量的特定元素分配名称的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中,如何选择和应用函数向量的元素?

在 C++ 中,如何为向量中的每个元素创建一个新对象?

我应该如何为精灵表中的精灵分配名称?

如何为排除的元素生成带有零的向量组合矩阵?

(Swift) 如何为单独的 iCarousels 分配特定数量的项目?

如何为特定图片分配评级?