Mar*_*ann 6 sql r left-join dplyr
我想离开加入两个数据帧,其中NA两侧的连接列中可能有s(即两code列)
a <- data.frame(code=c(1,2,NA))
b <- data.frame(code=c(1,2,NA, NA), name=LETTERS[1:4])
Run Code Online (Sandbox Code Playgroud)
使用dplyr,我们得到:
left_join(a, b, by="code")
code name
1 1 A
2 2 B
3 NA C
4 NA D
Run Code Online (Sandbox Code Playgroud)
使用SQL,我们得到:
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);
Run Code Online (Sandbox Code Playgroud)
似乎dplyr连接NA不像SQL NULL值那样对待.
dplyr与SQL相同的方式行事?PS.当然,我可以先删除NAs到达那里left_join(a, na.omit(b), by="code"),但这不是我的问题.