我有三个要加入的数据框。困难在于我希望替换同一列中的冲突值,而不是创建新行。我尝试过left_join和full_join的不同变体,然后是滤镜。
示例数据帧:
df.0 <-
ID SEQUENCE FIXDT.0 FIXU.0 SEX
3 0 2010-08-01 Spayed Female
1 0 2011-10-01 Neutered Male
2 0 1 Spayed Female
5 0 2012-05-01 Neutered Male
df.1_2 <-
ID SEQUENCE FIXDT.0 FIXU.0 SEX
3 1 2010-10-01 Spayed Female
1 1 1 Neutered Male
4 2 1 Spayed Female
5 1 2012-05-01 Neutered Male
df.3_6 <-
ID SEQUENCE FIXDT.0 FIXU.0 SEX
6 3 2011-08-01 Neutered Male
1 6 2012-10-01 Neutered Male
4 4 2010-02-01 Spayed Female
5 3 2012-05-01 Neutered Male
df.cohort <-
ID SEX.STATUS BIRTH.DATE ENROLLED.DATE
1 Neutered Male 8/23/2010 12/11/2012
2 Spayed Female 6/16/2011 9/11/2013
3 Spayed Female 9/28/2011 9/6/2013
4 Spayed Female 6/26/2011 1/2/2013
5 Neutered Male 4/15/2011 7/5/2012
6 Neutered Male 5/12/2010 8/16/2011
7 Intact Male 2/17/2011 10/25/2012
我想将它们与下面所需的输出结合在一起。我的想法是将它们连接在一起,并用下一个连接表中的值替换以前的值。另一个需要注意的重要事项是,如果可能的话,我希望在输出中指定FIXDT的日期。这将意味着替换某些行,而不替换其他行
df.full <-
ID SEX.STATUS BIRTH.DATE ENROLLED.DATE Sex FIXDT FIXU SEQUENCE
1 Neutered Male 8/23/2010 12/11/2012 Neutered Male 2011-10-01 0
2 Spayed Female 6/16/2011 9/11/2013 Spayed Female 1 0
3 Spayed Female 9/28/2011 9/6/2013 Spayed Female 2010-08-01 0
4 Spayed Female 6/26/2011 1/2/2013 Spayed Female 2010-02-01 4
5 Neutered Male 4/15/2011 7/5/2012 Neutered Male 2012-05-01 0
6 Neutered Male 5/12/2010 8/16/2011 Neutered Male 2011-08-01 3
7 Intact Male 2/17/2011 10/25/2012
我知道此make需要一些中间data.frames,并且也尝试过这种方法。我尝试使用dplyr
和filter
,但意识到这些方法最适合相等的联接,并且我尝试进行不相等的联接。