R语言中修改Vector元素失败,Vector是否为不可变对象?
R向量的索引问题与可变性说明
你的问题和向量是否可变无关,核心是R语言的向量索引从1开始,而非你习惯的0起始索引。
你创建向量的代码是正确的:
a <- vector(length = 3)
此时a的值为[FALSE, FALSE, FALSE]。
但你执行的a[0] = TRUE不会修改向量元素——在R中,索引0是无效位置,这类赋值操作不会对原向量产生任何影响,也不会触发报错。
要修改第一个元素,需使用索引1:
a[1] <- TRUE
执行后a会变为[TRUE, FALSE, FALSE]。
另外明确:R中的向量是可变对象,你可以随时通过索引修改元素、调整长度(比如a[4] <- TRUE会直接将向量长度扩展至4),或是通过其他赋值操作更改其内容。
内容的提问来源于stack exchange,提问作者James C
相关产品推荐
相关产品推荐

