我有一个这样的清单:
a = list('bla'=c(0,1,2,3))
我想为每个元素添加1,所以
> a['bla']
$bla
[1] 1 2 3 4
当然
> a['bla']+1
不起作用......
帮助?
答案 0 :(得分:9)
你需要双括号:
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