我有2个数据框。如下:
df1
Date Duration
6/27/2014 10.00
6/30/2014 20.00
7/11/2014 15.00
和
df2
Date Percent_Removal
6/27/2014 20.39
6/30/2014 27.01
7/7/2014 49.84
7/11/2014 59.48
7/17/2014 99.04
我想基于df1中的“日期”列合并这2个数据帧。输出应如下所示:
df3
Date Duration_sum Percent_Removal
6/27/2014 10.00 20.39
6/30/2014 20.00 27.01
7/11/2014 15.00 59.48
我尝试了以下功能:
df1$Date <- as.Date (df1$Date, format= "%m/%d/%Y")
df2$Date <- as.Date (df2$Date, format= "%m/%d/%Y")
df3<- as.data.frame (merge(df1,df2,by.x = "Date",all.x = TRUE))
我的输出是:
df3
Date Duration_sum Percent_Removal
6/27/2014 10.00 NA
6/30/2014 20.00 NA
7/11/2014 15.00 NA
如果有人可以帮助我解决这个问题,我将不胜感激。提前致谢。
这对于评论来说太长了,但是实际上只需要证明我在评论中给出的解决方案确实有效即可。如果您在合并工作方面遇到问题,那么您的数据肯定还有其他问题,我们无法诊断,因为您没有提供数据的传输。
df1 = read.table(text =
"Date Duration
6/27/2014 10.00
6/30/2014 20.00
7/11/2014 15.00",
header = T)
df2 = read.table(text =
"Date Percent_Removal
6/27/2014 20.39
6/30/2014 27.01
7/7/2014 49.84
7/11/2014 59.48
7/17/2014 99.04",
header = T)
df1$Date <- as.Date (df1$Date, format= "%m/%d/%Y")
df2$Date <- as.Date (df2$Date, format= "%m/%d/%Y")
df3 = merge(df1,df2)
# Date Duration Percent_Removal
# 1 2014-06-27 10 20.39
# 2 2014-06-30 20 27.01
# 3 2014-07-11 15 59.48
请注意,不需要在merge语句中指定其他选项,因为
by =
是两个数据框共有的列名。在这种情况下,仅Date
被共享。all.x
,all.y
并all
给出所需的行为,即仅保留两个数据帧中的行。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句