将 .dbf 导入 RStudio:DBF filefseek 失败 (-2147207979)
import .dbf into RStudio: failed on DBF filefseek (-2147207979)
我正在尝试将 .dbf
文件导入 RStudio。
此文件是我导出为 .dbf
的 shapefile 的属性 table。
您可以在 this link
中找到 .dbf
文件
我试过如下导入它
library(foreign)
df <- read.dbf("5layers1.dbf")
我遇到了错误(如下),RStudio 崩溃了,所以我无法得到 sessionInfo()
。
任何有关如何将这个大型 .dbf 文件导入 RStudio 的建议都将不胜感激。
我建议将其保存为 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 个属性之一:
对我来说 read.dbf()
也没有用,而且文件通常太大而无法在 excel 中打开它以将它们转换成更有用的东西。我发现一个更好的读取 .dbf 文件的方法是使用在 Windows 下分发的 dbf ODBC 驱动程序(通常只有 32 位版本),假设您在 Windows 下操作,并与RODBC
并最终像连接到数据库的通常方式一样访问数据。现在,需要使用 32 位版本的 R,以便它与驱动程序架构兼容,但 R 提供 32 位和 64 位版本。
与 OP 类似,我发现 foreign::read.dbf
使我的会话崩溃。但是我能够毫无问题地使用 rio
包:
df <- rio::import("5layers1.dbf")
我正在尝试将 .dbf
文件导入 RStudio。
此文件是我导出为 .dbf
的 shapefile 的属性 table。
您可以在 this link
.dbf
文件
我试过如下导入它
library(foreign)
df <- read.dbf("5layers1.dbf")
我遇到了错误(如下),RStudio 崩溃了,所以我无法得到 sessionInfo()
。
任何有关如何将这个大型 .dbf 文件导入 RStudio 的建议都将不胜感激。
我建议将其保存为 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 个属性之一:
对我来说 read.dbf()
也没有用,而且文件通常太大而无法在 excel 中打开它以将它们转换成更有用的东西。我发现一个更好的读取 .dbf 文件的方法是使用在 Windows 下分发的 dbf ODBC 驱动程序(通常只有 32 位版本),假设您在 Windows 下操作,并与RODBC
并最终像连接到数据库的通常方式一样访问数据。现在,需要使用 32 位版本的 R,以便它与驱动程序架构兼容,但 R 提供 32 位和 64 位版本。
与 OP 类似,我发现 foreign::read.dbf
使我的会话崩溃。但是我能够毫无问题地使用 rio
包:
df <- rio::import("5layers1.dbf")