You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中读取cp850编码的DBF文件?

解决R中读取cp850编码DBF文件的问题

你遇到的“unused argument”错误,是因为你使用的foreign包中的read.dbf函数没有fileEncoding参数,该函数指定编码的参数是encoding。

单文件读取的正确方式

方法1:使用foreign包(最常用)

先确保安装并加载foreign包,然后用encoding参数指定cp850编码:

# 首次使用先安装包
install.packages("foreign")
library(foreign)

# 读取单个DBF文件
route_df <- read.dbf("X:/Users/name/folder1/Routes.dbf", encoding = "cp850")

方法2:通过文件连接指定编码

如果遇到特殊编码兼容问题,也可以先创建指定编码的文件连接再读取:

con <- file("X:/Users/name/folder1/Routes.dbf", encoding = "cp850")
route_df <- read.dbf(con)
close(con) # 读取完成后记得关闭文件连接

批量读取多个DBF文件

按以下步骤批量加载文件夹下所有cp850编码的DBF文件:

  • 定义目标文件夹路径,获取所有DBF文件的完整路径:
folder_path <- "X:/Users/name/folder1"
# 忽略大小写匹配DBF文件
dbf_files <- list.files(folder_path, pattern = "\\.dbf$", full.names = TRUE, ignore.case = TRUE)
  • 批量读取所有文件,返回数据框列表:
dbf_data_list <- lapply(dbf_files, function(file) {
  read.dbf(file, encoding = "cp850")
})
  • 若所有文件结构一致,合并为单个数据框:
combined_data <- do.call(rbind, dbf_data_list)

内容的提问来源于stack exchange,提问作者rr19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:22:46