以下与R语言有关。
x1 <- c(1, 4, 3, NA, 7)
is.na(x1) <- which(x1 == 7)
我不理解,最后一行中的LHS为您提供了布尔向量,RHS是一个值(索引,其中x == 7,在这种情况下为5)。那么给布尔向量赋值为5是什么意思?
答案 0 :(得分:0)
is.na
返回:
应用于原子向量的is.na的默认方法返回一个与其参数x长度相同的逻辑向量,对于标记为NA的元素为TRUE,对于数字或复数向量则为NaN,否则为FALSE。 / p>
因此,通过建立一个逻辑向量(实际上,您实际上是在说索引是TRUE
的地方,它应该是NA
。
通过将这些索引与which
中的相应索引进行“匹配”,您可以将NA
处的相应索引变成FALSE
,从而进行更改。
将其付诸实践:
这是is.na(x1)
的输出:
is.na(x1)
[1] FALSE FALSE FALSE TRUE FALSE
which(x==7)
的相应输出:
which(x1 == 7)
[1] 5
结合起来,位置5的元素现在将成为NA
,因为它已被赋予逻辑is.na()
并返回TRUE
is.na(x1) <- which(x1 == 7)
x1
[1] 1 4 3 NA NA
上面的方法将第一个索引转换为另外两个NA
的{{1}}和appends
,从而使索引7和NA
。
最好通过以下方式查看:
NA
与文档中的此示例比较:
is.na(x1) <- c(1,7)
x1
[1] NA 4 3 NA 7 NA NA
从上面可以明显看出,c(2,4)遵循(xx <- c(0:4))
is.na(xx) <- c(2, 4)
xx
[1] 0 NA 2 NA 4
中的原始索引,因此其余部分变为xx
s。