我想要这个作为我想要的向量
0,2,3,0,5,0,7,0,0
我使用了这些命令,但没有成功。
b <- c(1:9)
b
x <- replace(b,b==c(1,4,6,8,9),c(0,0,0,0,0)
x
g <- (gsub(c(1,4,6,8,9),c(0,0,0,0,0),b))
应用这些命令之前,请参见this。
[当我们将b
与使用==
的向量进行比较时,我们在元素上进行比较,因此b[1]
与1进行比较,b[2]
与4进行比较,依此类推。由于length(c(1,4,6,8,9))
短于length(b)
,因此这些值将被回收以匹配b
的长度。
b == c(1,4,6,8,9)
#[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
警告消息:在b == c(1,4,6,8,9)中:较长的对象长度不是较短的对象长度的倍数
要比较多个值,我们需要%in%
b %in% c(1,4,6,8,9)
#[1] TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
以便我们可以使用replace
like >>
replace(b,b %in% c(1,4,6,8,9),c(0, 0, 0, 0, 0)) #[1] 0 2 3 0 5 0 7 0 0
但是,
replace
可以接受位置向量,因此我们可以直接进行
replace(b, c(1,4,6,8,9), 0)
#[1] 0 2 3 0 5 0 7 0 0