R:検索結果がヒットしないのに、NAとか0にはならないとき
Rでのちょっと戸惑ったこと。
データからsubset()で検索値をとりだして
その値を使ってさらに足し算したいとき。
検索結果がヒットしなかったら
0を返してほしかったのだけど
そうじゃなくてlogical(0)なんて出てきて
これが煮ても焼いても食えなかった。
is.na()をやってもだめで
この数字自体に1をかけたり、1を割ったりして
何かエラーにしようとしても
numeric(0)とか出て、うまく扱えない。
で、length()で大きさを見ると、見事に数字の0に落ち着いた。
d <- subset(data, lon == basedata$lon[ i ] & lat == basedata$lat[ i ]
d2 <- subset(data, lon == basedata$lon[ j ] & lat == basedata$lat[ j ]
で、このdに該当する数字が見つからなかったときに
(d2はヒットして5だったとすると)
d + d2 とかしたい場合
そのままだと計算できないけど
length(d) + d2 だと、5が返される。
もっとも、dに数字がヒットした時に困るから
その前にifとかでちゃんと仕分けしておかないといけないけど。
強引かもしれないけど、なんとか解決。