【问题标题】:import .dbf into RStudio: failed on DBF filefseek (-2147207979)将 .dbf 导入 RStudio:在 DBF filefseek 上失败 (-2147207979)
【发布时间】:2016-12-07 23:58:03
【问题描述】:

我正在尝试将 .dbf 文件导入 RStudio。

这个文件是我导出为.dbf 的shapefile 的属性表。 您可以在this link 中找到.dbf 文件

我尝试如下导入它

library(foreign)
df <- read.dbf("5layers1.dbf")

我遇到了错误(如下)并且 RStudio 崩溃了,所以我无法获得 sessionInfo()

任何关于如何将这个大的 .dbf 文件导入 RStudio 的建议将不胜感激。

【问题讨论】:

  • 文件太大,我无法测试。你有多少内存?
  • 能否请您附上您用来导出它的代码?
  • @Hugh 我有 4GB 内存
  • @TravisHeeter 我没有使用 ArcGIS 的代码将其导出。我只是使用 export as .dbf 文件将其导出

标签: r import dbf


【解决方案1】:

我建议将其保存为 csv 文件(我在一两个小时内使用 LibreOffice 完成此操作,并使用 ; 作为分隔符)。之后你可以像这样将它导入R

dat <- readLines("5layers1.csv")

li <- strsplit(dat, ";")
num <- as.numeric(unlist(lapply(li, `[[`, 100)))

boxplot(num, main=unlist(strsplit(dat[1], ";"))[100])
mtext(side=3, text=paste("n = ", length(num), sep=""))

文件真的很大!你会从中获得很多乐趣!我不确定 R 是否是这项工作的工具。我使用带有 8GB Ram 的 Tinkpad T430,它需要 2 分钟来运行这五行来制作这个箱线图,它代表了 dbf 文件的 179 个属性之一:

【讨论】:

  • 非常感谢您的时间和帮助。恐怕拥有 4GB RAM 的 PC 对我没有帮助。我认为 R 与我的 PC 不是进行此练习的正确工具。
  • 你可以试试。我很惊讶我只使用了 2.26GB 用于上述操作,包括操作系统。如果你愿意,我可以为你上传 csv 文件。如果此操作有效,请尝试一下。如果可能,您只尝试使用一小部分数据,以准备您的操作和计算。如果一切都已播种,您让 R 单独待几个小时,然后在几个小时后回来查看您的结果 :)
【解决方案2】:

对我来说read.dbf() 也不起作用,而且文件通常太大而无法在 excel 中打开以将它们转换成更有用的东西。我发现读取.dbf文件的更好方法是使用Windows下分发的dbf ODBC Driver(通常只有32位版本),假设您在Windows下操作,并与RODBC一起创建连接并最终访问数据就像您连接到数据库的通常方式一样。现在,需要使用 32 位版本的 R 以便它与驱动程序架构兼容,但 R 带有 32 位和 64 位版本。

【讨论】:

    【解决方案3】:

    与 OP 类似,我发现 foreign::read.dbf 使我的会话崩溃。但是我可以毫无问题地使用rio 包:

    df &lt;- rio::import("5layers1.dbf")

    https://github.com/leeper/rio

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多