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

R语言中使用lapply调用read.csv时出现“无法打开连接”错误求助

解决R中lapply(read.csv)"无法打开连接"的问题

我来帮你快速搞定这个问题!你遇到的报错本质是文件路径不匹配:

  • 你用list.files()从C:/Users/Rachael/Documents里获取了CSV文件名,但默认只返回纯文件名(比如"PIR.csv"),没带上完整路径
  • 而你之前用setwd()把工作目录设到了桌面,read.csv()会默认在当前工作目录(桌面)找文件,自然找不到Documents文件夹里的文件,所以触发"无法打开连接"的错误

两种可行的解决方案

方案1:让list.files返回完整文件路径

直接在list.files()里加上full.names = TRUE参数,这样返回的结果就是带完整路径的文件名,read.csv能直接识别:

library(DBI)
library(proto)
library(chron)
library(RSQLite)
library(sqldf)

setwd("C:/Users/Rachael/Desktop")# 设置工作目录到桌面
# 加上full.names=TRUE获取完整路径
files = list.files(path = "C:/Users/Rachael/Documents", pattern = ".csv", full.names = TRUE)
files # 现在会显示完整路径,比如"C:/Users/Rachael/Documents/PIR.csv"
rdf=lapply(files, read.csv) # 现在可以正常加载文件了

方案2:在read.csv中拼接文件路径

如果你不想修改list.files()的返回结果,可以在lapply的匿名函数里,用file.path()把文件夹路径和文件名拼接起来,生成完整路径后再读取:

library(DBI)
library(proto)
library(chron)
library(RSQLite)
library(sqldf)

setwd("C:/Users/Rachael/Desktop")# 设置工作目录到桌面
files = list.files(path = "C:/Users/Rachael/Documents", pattern = ".csv")
files # 还是只显示文件名
# 用file.path拼接路径和文件名
rdf=lapply(files, function(file_name) {
  read.csv(file.path("C:/Users/Rachael/Documents", file_name))
})

验证方法

执行files后,如果看到的是类似"C:/Users/Rachael/Documents/PIR.csv"的完整路径,就说明路径设置正确了,再运行lapply就能成功加载所有CSV文件啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:34:13