`write.dbf` 因类`tbl_df` 的对象而失败

gre*_*ane 3 r dplyr

我用.dbf文件做了很多工作,也用dplyr. 有一个错误write.dbf()阻止将tbl_df对象写入.dbf文件。

不幸的是,错误消息写得不好,因此很难弄清楚到底发生了什么。

这是一个 MWE

library(dplyr)
library(foreign)

d <- data_frame( x = 1:4, y = rnorm(4) )
write.dbf(d, "test.dbf")
  Error in write.dbf(d, "test.dbf") : unknown column type in data frame
Run Code Online (Sandbox Code Playgroud)

gre*_*ane 5

这里的解决方案是强制类为ddata.frame

class(d)
 [1] "tbl_df"     "tbl"        "data.frame"
df <- as.data.frame(d)
class(df)
 [1] "data.frame"
write.dbf(as.data.frame(df), "test.dbf")  # works
Run Code Online (Sandbox Code Playgroud)

我已经向foreign人们提交了错误报告,但希望这篇文章可以为其他人省去一些痛苦。