我有一个这样的列表:
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