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