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

时间:2013-03-22 15:02:32

标签: r list addition

我有一个这样的清单:

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

我想为每个元素添加1,所以

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

当然

> a['bla']+1

不起作用......

帮助?

2 个答案:

答案 0 :(得分:9)

你需要双括号:

a[['bla']]+1

比较

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

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

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

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

  • index:a[[1]]
  • double:a$bla

答案 1 :(得分:2)

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

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