Понимание вывода функции seq - PullRequest
0 голосов
/ 25 января 2020

При использовании функции seq я получаю следующие выходные данные:

>seq(1,4)
1 2 3 4

, и это извлекает второй элемент из последовательности

>seq(1,4) [2]
2

Эти два я понимаю. Однако я не понимаю, почему следующее приводит к четырем значениям NA

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

Но приведенный ниже пример не инициирует четыре значения "AB C" вместо одного NA

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

Почему это происходит?

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Здесь важно то, что NA логично:

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

и логические индексы всегда перерабатываются.

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

Если вы используете целочисленное значение NA, тогда это выиграет ' может произойти:

seq(1, 4)[NA_integer_]
## [1] NA
0 голосов
/ 25 января 2020

Я не думаю, что это имеет какое-либо отношение к функции seq. Если вы попытаетесь установить значения с помощью NA, вы получите вектор NA.

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