在dplyr中将数据帧与difftime列连接起来

时间:2015-02-24 14:57:25

标签: r dplyr

我有两个具有完全相同列的数据框,我正在尝试使用dplyr :: union将它们连接在一起。

union(df.3, df.4)

然而,我收到错误:

  

错误:无法加入列'run.time'x'run.time':无法加入> 'run.time'x'run.time'因为不兼容的类型(difftime / difftime)

由于run.time列的类型相同,为什么会出现此错误?

 class(df.4$run.time)
[1] "difftime"
> class(df.3$run.time)
[1] "difftime"
> 

我知道我可以使用rbind进行连接,但我很好奇为什么union不起作用。

1 个答案:

答案 0 :(得分:1)

我觉得有必要警告你:

  

我知道我可以使用rbind来进行连接

当您的某列为rbind时,我会非常谨慎地使用difftime。考虑这个例子:

now <- Sys.time()
foo <- data.frame(X = now+10 - now)
bar <- data.frame(X = now+120 - now)

foo
##          X
## 1  10 secs

bar
##          X
## 1   2 mins

rbind(foo, bar)
##          X
## 1  10 secs
## 2   2 secs   !!!

rbind(bar, foo)
##          X
## 1   2 mins
## 2  10 mins   !!!