我有两个具有完全相同列的数据框,我正在尝试使用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
不起作用。
答案 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 !!!