向列表中的所有元素添加值(R)

向列表中的所有元素添加值(R),r,list,addition,R,List,Addition,我有这样一份清单: a = list('bla'=c(0,1,2,3)) 我想给每个元素加1,这样 > a['bla'] $bla [1] 1 2 3 4 当然 > a['bla']+1 不起作用 帮助?您需要双括号: a[['bla']]+1 比较: R> a["bla"] $bla [1] 0 1 2 3 与 R> a[["bla"]] [1] 0 1 2 3 正如Dason指出的,需要双括号的原因是,在对列表进行操作时,单括号返回一个包含您请求的元素的列

我有这样一份清单:

a = list('bla'=c(0,1,2,3))
我想给每个元素加1,这样

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

> a['bla']+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

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

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

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