【发布时间】:2016-12-29 01:26:18
【问题描述】:
我有 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 中的“日期”列合并这两个数据框。输出应如下所示:
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
如果有人能帮我解决这个问题,我将不胜感激。提前致谢。
【问题讨论】:
-
merge.data.frame(df1,df2) -
df3 = merge(df1, df2, by="Date", all.x=TRUE)。这将丢弃df2中与df1中的Date不匹配的所有行。如果您想保留两个数据框中的所有行,无论它们在另一个数据框中是否有匹配项,您都可以使用all=TRUE而不是all.x=TRUE。 -
(1)
merge(df1, df2, by = "Date", all = TRUE)的结果是什么? (2) 日期存储为字符值的相同问题。 -
merge(df1, df2, by = "Date", all = TRUE) 仍然没有返回任何值 df3$Percent_Removal.... 与我在问题中对 df3 的结果相同。