了解seq函数的输出

问题描述 投票:0回答:2

使用seq函数时,得到以下输出:

>seq(1,4)
1 2 3 4

这将从序列中检索第二个元素

>seq(1,4) [2]
2

我理解这两个。但是,我不明白为什么以下代码会产生四个NA值

>seq(1,4) [NA]
NA NA NA NA

但是下面的示例不会初始化四个“ ABC”值,而不会初始化一个NA

>seq(1,4) ["ABC"]
NA

为什么会这样?

r na seq
2个回答
0
投票

我认为这与seq函数无关。如果尝试使用NA对值进行子集化,则会返回NA的向量。

a <- c(1, 2)
a[NA]

0
投票

这里重要的是NA是逻辑的:

class(NA)
## [1] "logical"

和逻辑索引总是被回收。

seq(1, 4)[c(TRUE, FALSE)]
## [1] 1 3

如果使用整数NA,则不会发生:

seq(1, 4)[NA_integer_]
## [1] NA
© www.soinside.com 2019 - 2024. All rights reserved.