我用 .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

最佳答案

这里的解决方案是将 d 的类强制为裸 data.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

我已经向 foreign 人员提交了一份错误报告,但希望这篇文章可以减轻其他人的痛苦。

关于r - `write.dbf` 因类 `tbl_df` 的对象而失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32286921/

10-12 19:50