両側の結合列にNA
がある場合は、2つのデータフレームを結合します(つまり、両方ともcode
列) dplyr
を使用してdplyr :: left_join(R lang)対SQLを使用したNA/NULL処理の差LEFT JOIN
a <- data.frame(code=c(1,2,NA))
b <- data.frame(code=c(1,2,NA, NA), name=LETTERS[1:4])
、我々が得る:SQLを使用して
left_join(a, b, by="code")
code name
1 1 A
2 2 B
3 NA C
4 NA D
は、我々が得る:
CREATE TABLE a (code INT);
INSERT INTO a VALUES (1),(2),(NULL);
CREATE TABLE b (code INT, name VARCHAR);
INSERT INTO b VALUES (1, 'A'),(2, 'B'),(NULL, 'C'), (NULL, 'D');
SELECT * FROM a LEFT JOIN b USING (code);
dplyr
がSQL NULL
値のようにNA
Sを扱うことはありません参加しているようです。
dplyr
にはSQLと同じように動作する方法はありますか?- このタイプのNA治療の背景にはどのような理由がありますか?
PS。もちろん、私は最初にそこに行くためにNAsを取り除くことができましたleft_join(a, na.omit(b), by="code")
、それは私の質問ではありません。したがって、得られた「ヌル」S - SQLは、それが参加するべきかについての情報を持っていないため、デフォルトの列コードによって