【发布时间】:2020-10-11 16:06:56
【问题描述】:
我有一个因子用作查找表。
condLookup = c(hotdog = "ketchup", ham = "mustard", popcorn = "salt", coffee = "cream")
这按预期工作 - 我输入了一个 3 向量并得到一个 3 向量:
condLookup[c("hotdog", "spinach", NA)]
hotdog <NA> <NA>
"ketchup" NA NA
这也是意料之中的,即使回报都是NA:
condLookup[c(NA, "spinach")]
<NA> <NA>
NA NA
还有这个:
condLookup["spinach"]
<NA>
NA
但这让我感到惊讶——我给了一个原子 NA,或两个 NA,我得到了一个 4 NA 的命名向量。
condLookup[NA]
<NA> <NA> <NA> <NA>
NA NA NA NA
condLookup[c(NA, NA)]
<NA> <NA> <NA> <NA>
NA NA NA NA
显然,对于vector2 <- condLookup[vector1],vector2 的长度将与vector1 相同除非vector1 中的每个元素都是 NA。在这种情况下,vector2 的长度与condLookup 的长度相同。
你能解释一下这种行为吗?
【问题讨论】:
-
你提醒了我of a recent answer of mine :)
-
我花了一分钟,但我终于明白了双关语。 :-)
-
相关帖子,其中
NA用于索引integer向量,类似回收:Indexing integer vector with NA