【问题标题】:How to assign a name to a specific element of a vector in R如何为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

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

【问题讨论】:

    标签: r variable-assignment assignment-operator assign


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2012-07-31
      • 2017-07-02
      • 2018-08-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2019-02-27
      • 2018-10-08
      相关资源
      最近更新 更多