替换其他数据框中的数据(如果适用)

时间:2019-09-04 17:07:04

标签: r dataframe

我有两个数据帧[df1,df2],其中我要求df2中的数据替换包含在其中的相同ID的任何和所有内容,但要保留df1中的所有其他数据。

在某些情况下,df2帧中的条目可能较少,这是我一直遇到的问题-如果可能,我希望删除该ID的所有条目并用新数据替换。

我已经尝试过合并和加入,但是没有得到我想要的结果。

df1

    id dataEntered dayNumber
 1:  1           1         1
 2:  1           2         2
 3:  1           3         3
 4:  1           4         4
 5:  1           9         5
 6:  1           1         6
 7:  1           2         7
 8:  2           3         1
 9:  2           5         2
10:  2           2         3
11:  3           3         1
12:  3           4         2
13:  3           5         3
14:  3           6         4
15:  3           7         5
16:  4           8         1
17:  4           4         2
18:  4          11         3
19:  5           3         1
20:  5           9         2
21:  5           5         3

df2

   id dataEntered dayNumber
1:  4           5         1
2:  4          11         2
3:  4           2         3
4:  4           3         4
5:  4           1         5
6:  4           7         6

我想要的东西:

    id dataEntered dayNumber
 1:  1           1         1
 2:  1           2         2
 3:  1           3         3
 4:  1           4         4
 5:  1           9         5
 6:  1           1         6
 7:  1           2         7
 8:  2           3         1
 9:  2           5         2
10:  2           2         3
11:  3           3         1
12:  3           4         2
13:  3           5         3
14:  3           6         4
15:  3           7         5
16:  4           5         1
17:  4           11        2
18:  4           2         3
19:  4           3         4
20:  4           1         5
21:  4           7         6
22:  5           3         1
23:  5           9         2
24:  5           5         3

使用的代码:

dput(df1)
structure(list(id = c(1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5), 
               dataEntered = c(1, 2, 3, 4, 9, 1, 2, 3, 5, 2, 3, 4, 5, 6, 7, 8, 4, 11, 3, 9, 5), 
               dayNumber = c(1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 3)), class = c("data.table", "data.frame"))


dput(df2)
structure(list(id = c(4, 4, 4, 4, 4, 4), 
               dataEntered = c(5, 11, 2, 3, 1, 7), 
               dayNumber = c(1, 2, 3, 4, 5, 6)), class = c("data.table", "data.frame"))

0 个答案:

没有答案