为什么R中的data.table匹配字符串"是"?

时间:2014-11-10 02:19:26

标签: r string boolean data.table

我在大型数据表中有一个字符列。时髦的东西正在发生。在跟踪找到0个匹配行之后,我将其追溯到第三行第三行。

affected[PapBelowVoiceBox=="Not Recorded"|PapBelowVoiceBox=="Unsure",PapBelowVoiceBox:=NA_character_]
affected[PapBelowVoiceBox=="No",PapBelowVoiceBox:="cleardist"]
affected[PapBelowVoiceBox=="Yes",PapBelowVoiceBox:="involvdist"]

variable=="Yes"未返回为TRUE,但variable %like% "Yes"返回为true。

所以我尝试使用迷你表重现data.table,一切都很完美。所以我的问题是,“我应该尝试哪些故障排除?”

换句话说,怎么可能发生以下情况?

> class(affected$PapBelowVoiceBox)
[1] "character"
> unique(affected[,PapBelowVoiceBox])
[1] NA          "cleardist" "Yes"      
> affected[,.N,by=PapBelowVoiceBox]
   PapBelowVoiceBox   N
1:               NA 488
2:        cleardist  96
3:              Yes  23
> affected$PapBelowVoiceBox=="Yes"
  [1]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 [19]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 [37]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 [55]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 [73]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
 [91]    NA    NA    NA    NA    NA    NA    NA FALSE    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[109]    NA    NA    NA    NA    NA    NA FALSE FALSE    NA    NA    NA    NA    NA    NA    NA    NA  TRUE FALSE
[127] FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE    NA FALSE FALSE FALSE FALSE FALSE
[145] FALSE FALSE FALSE FALSE  TRUE    NA FALSE FALSE  TRUE FALSE    NA FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[163]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[181] FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE
[199] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[217] FALSE FALSE FALSE FALSE FALSE FALSE    NA FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
[235]    NA FALSE FALSE FALSE FALSE FALSE    NA FALSE FALSE  TRUE    NA    NA    NA    NA    NA    NA    NA    NA
[253]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[271]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[289]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[307]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[325]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[343]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA  TRUE    NA    NA    NA    NA
[361]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[379]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[397]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[415]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[433]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[451]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[469]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[487]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[505]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[523]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[541]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA FALSE    NA    NA    NA    NA
[559]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[577]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
[595]    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA    NA
> affected[PapBelowVoiceBox %like% "Yes",.N]
[1] 23
> affected[PapBelowVoiceBox == "Yes",.N]
[1] 0

0 个答案:

没有答案