我正在使用left_join
中的dplyr
加入两个数据帧。这是一个MWE:
library(dplyr)
dfOne <- data.frame(1:10,
8*(1:10),
c(2,4,6,8,10,12,14,16,18,20) )
colnames(dfOne)<-c("one", "two", "three")
dfTwo <- data.frame(1:6,
8*(1:6),
c(2,4,6,8,10,12) )
colnames(dfTwo)<-c("one", "two", "three")
left_join(dfOne[c("one", "two")], dfTwo[c("two", "three")], by="two")
这给出了以下输出(如预期的那样)
one two three
1 1 8 2
2 2 16 4
3 3 24 6
4 4 32 8
5 5 40 10
6 6 48 12
7 7 56 NA
8 8 64 NA
9 9 72 NA
10 10 80 NA
在three
中NA
不存在的所有行中,dfTwo$two
列填充dfTwo$one
。但是,是否可以使用left_join
以避免NA
- 值并且它们为空(NULL
)?
答案 0 :(得分:1)
我不确定我是否正确理解了您的问题,但如果我这样理解R中的NA与SQL中的Null相同可能会有所帮助。如果您希望NA显示为“”,只需在左连接中命名您的数据帧(例如“lj_df”)并替换所有NA。您可以用“0”或“Null”或其他任何您喜欢的内容替换为“”。
lj_df <- left_join(dfOne[c("one", "two")], dfTwo[c("two", "three")], by="two")
lj_df[is.na(lj_df)] <- ""