【问题标题】:Add a value to all elements in a list (R)为列表中的所有元素添加一个值 (R)
【发布时间】:2013-03-22 15:02:32
【问题描述】:

我有一个这样的列表:

a = list('bla'=c(0,1,2,3))

我想给每个元素加 1 所以

> a['bla']
$bla
[1] 1 2 3 4

当然

> a['bla']+1

没用……

帮助?

【问题讨论】:

    标签: r list addition


    【解决方案1】:

    你需要双括号:

    a[['bla']]+1
    

    比较:

    R> a["bla"]
    $bla
    [1] 0 1 2 3
    

    R> a[["bla"]]
    [1] 0 1 2 3
    

    正如 Dason 所指出的,您需要双括号的原因是,在对列表进行操作时,单括号会返回一个包含您要求的元素的列表,而双括号会返回元素本身。您不能直接在列表上使用算术运算符,因此当您使用单括号时,您会得到一个列表,并且它不知道如何将“1”添加到列表中。

    访问列表元素的其他方法是:

    • 索引:a[[1]]
    • 双倍:a$bla

    【讨论】:

    • 请注意,您需要双括号的原因是,在对列表进行操作时,单括号返回一个包含您要求的元素的列表,而双括号返回元素本身。您不能直接在列表上使用算术运算符,因此当您使用单括号时,您会得到一个列表,并且它不知道如何将“1”添加到列表中。
    【解决方案2】:

    您可以使用美元符号按名称访问列表元素:

    R> a$bla+1
    [1] 1 2 3 4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2015-04-24
      • 2017-03-05
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      相关资源
      最近更新 更多