首页 > 解决方案 > 如何使用索引更改向量的值?

问题描述

我所说的索引指的是 R 存储每个值时的顺序。现在我只想编辑一个对象的值,但条件是它的索引是奇数(1 3 5 7 9 ..)

b[索引]

有以下变量

a <- c("a","b","c","d") # 4 values
b <- rep(NaN,length(a)*2 ) # 8 values

现在在向量 b 中,我有 8 个数据,我的目标是以奇怪的方式更改值:

> b[1]
[1] "a"

> b[5]
[1] "c"

> b[2]
[1] NaN

> b[6]
[1] NaN

> b[3]
[1] "b"

>  b[7]
[1] "d"

> b[4]
[1] NaN

> b[8]
[1] NaN

有没有自动的方法来完成这个过程?例子for(i in(1:length(b)))

b[2*(1:length(a))- 1 ] = a

错误只有 0 可以与负订阅混合

标签: r

解决方案


我们可以使用带有逻辑索引的回收索引

b[c(TRUE, FALSE)] <- a
b
#[1] "a"   "NaN" "b"   "NaN" "c"   "NaN" "d"   "NaN"

推荐阅读