【发布时间】:2014-05-01 10:43:27
【问题描述】:
考虑以下几点:
seq(from=10,to=30)[c(4,8)]
[1] 13 17
seq(from=10,to=30)[c(NA,8)]
[1] NA 17
seq(from=10,to=30)[c(NA,NA)]
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
对我来说,后者的结果与 R 处理其他两个示例的方式不一致,并且给我带来了相当不愉快的调试痛苦。
这可能被认为是一个错误吗?
【问题讨论】:
-
一个错误,不。
seq(10, 30)都不是NA。[是一个提取函数。您尝试提取的NA不在序列中。 -
试试
seq(from=10,to=30)[c(TRUE, FALSE)],看看你会得到什么。 -
或者试试
(10:30)[NA]看看你得到了什么。R处理NA的规则非常明确,实际上是一致的。 -
我不明白。
(10:30)[c(NA,8)]可以解释为:“返回‘不适用’和第 8 个元素”,那么为什么“返回‘不适用’元素两次”没有返回c(NA,NA)?
标签: r