在r中合并名称相同但类型不同的列上的两个数据框?

merge two dataframe on columns with same name but different type in r?

我试图在两列上合并两个具有相同名称但不同对象类型和不同行数的数据框。它们都是日期数据(即“2015-03-17 00:00:00”)并且格式相同。一个是 double 类型,另一个是 character.

类型

我试过了

merge(d1,d2,all=T,by.x=as.character(d1$Date))
merge(d1,d2,all=T,by.y=as.numeric(d1$Date))
merge(d1,d2,all=T,by="Date")

但其中 none 行得通(就像笛卡尔积一样)。我想知道我做错了什么以及如何正确地做?

我想最简单的方法是先协调类型。鉴于您的数据框:

d1 <- data.frame(Date="2015-03-17",value=0)
d2 <- data.frame(Date=seq(as.POSIXct("2015-03-17"), as.POSIXct("2015-03-18"), by="days"))

我会使用 Right outer join SQL 框架,如下所示:

d1$Date <- as.POSIXct(d1$Date)
merge(d1,d2, all.y=TRUE, by="Date")