假设我有两个名为df和df1的 Dataframe :
df<- data.frame("id" = c(1,1,1,2,2,3,3,4,4,5,5,5),"occ"=c(1,1,2,2,2,1,1,2,2,1,2,2))
df1<- data.frame("id" = c(1,1,2,2,3,3,4,4,5,5),"salary"= c(10,11,12,13,14,15,16,17,18,19))
字符串
我想合并两个基于ID
的数据,如果在df1中存在但在df中的某行为零,我的预期输出如下:
id occ salary
1 1 1 10
2 1 1 11
3 1 2 0
4 2 2 12
5 2 2 13
6 3 1 14
7 3 1 15
8 4 2 16
9 4 2 17
10 5 1 18
11 5 2 19
12 5 2 0
型
我尝试了下面的代码,但它重复行:
merged <- merge(df, df1, by.x="id", by.y="id") or
merged <- merge(df, df1, by = "id", all = TRUE)
型
2条答案
按热度按时间nszi6y051#
有一个 * 时间 * 变量丢失,尝试在基地R。
字符串
如果你真的想用
0
替换NA
,那么把它放到replace
中。型
型
t3irkdon2#
由于ID序列对于合并很重要,因此需要添加一个额外的列。
字符串
这将返回
型