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

时间:2015-05-06 08:53:07

标签: r merge dataframe

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

我试过

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")

但它们都不起作用(它像笛卡尔产品一样)。我想知道我做错了什么以及如何正确地做到这一点?

1 个答案:

答案 0 :(得分:2)

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

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")