Как работает подмножество с NA? - PullRequest
0 голосов
/ 28 августа 2018

Может кто-нибудь, пожалуйста, ответьте в терминах непрофессионала, как работает индексирование (подмножество) с NA. Несмотря на то, что есть некоторые ответы от Google, я хотел бы понять это лучше в простых терминах.

При индексации вектора (длиной> 1) с использованием одного NA, почему он дает пять пропущенных значений?

> x <- 1:5
> x[NA]
[1] NA NA NA NA NA

1 Ответ

0 голосов
/ 28 августа 2018

С help("["):

При извлечении числовой, логический или символьный индекс NA выбирает неизвестный элемент и поэтому возвращает NA в соответствующем элементе логический, целочисленный, числовой, сложный или символьный результат и NULL для список.

Что означает «соответствующий элемент»? Это можно понять, если вы знаете о переработке векторных элементов. x[NA] (это логический NA по умолчанию) в вашем примере фактически "интерпретируется" как x[c(NA, NA, NA, NA, NA)], поскольку логические индексы перерабатываются. Таким образом, каждый элемент x имеет соответствующий NA во время поднабора и, таким образом (согласно приведенной выше цитате) NA возвращается для каждого элемента x. На языке непрофессионала: для каждого элемента x мы не знаем, хотим ли мы этого. Таким образом, неизвестное значение возвращается для каждого элемента.

Как указывает @ r2evans: x[NA_integer_] возвращает только один NA, поскольку целочисленные индексы не перерабатываются. На языке непрофессионала: мы хотим одно значение, но не знаем какое. Таким образом, возвращается одно неизвестное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...