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

升级R 4.2.1与RStudio后读取CSV报错:invalid 'description' argument

解决R 4.2.1中读取CSV文件时的"invalid 'description' argument"错误

问题根源

报错的核心原因是:旧版本R对文件路径的检查较宽松,而R 4.x版本对路径有效性要求更严格。原代码里list.files()默认只返回文件名(递归查找子目录时也不会带完整路径),导致read.csv()找不到实际文件位置,触发路径无效的报错。

修复步骤

1. 让list.files()返回完整文件路径

修改list.files调用,添加full.names = TRUE参数,确保返回的是包含完整路径的文件名,这样read.csv才能准确定位文件:

out_files <- list.files(pattern = "^DINum(.*)csv$", recursive = TRUE, full.names = TRUE)

2. 先检查是否找到有效文件

在读取前加个判断,避免没找到文件时循环空跑触发错误:

if (length(out_files) == 0) {
  stop("没有找到符合条件的CSV文件,请检查文件夹路径和文件名规则")
}

3. 优化读取逻辑(可选,更简洁)

用lapply替代for循环,代码更简洁且不容易出索引错误:

list.data <- lapply(out_files, function(file) {
  read.csv(file, check.names = TRUE)
})

4. 改掉全局赋值(可选,良好编程习惯)

原代码里wd <<- choose.dir()用了全局赋值,改成局部赋值更安全:

wd <- choose.dir(caption = "Select top level folder where your data is located")
setwd(wd)

完整修复后的代码

wd <- choose.dir(caption = "Select top level folder where your data is located")
setwd(wd)

# 列出所有符合条件的完整文件路径
out_files <- list.files(pattern = "^DINum(.*)csv$", recursive = TRUE, full.names = TRUE)

# 检查是否找到匹配文件
if (length(out_files) == 0) {
  stop("未找到匹配的CSV文件,请确认文件夹路径和文件名格式")
}

# 读取所有CSV文件到列表
list.data <- lapply(out_files, function(file) {
  read.csv(file, check.names = TRUE)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:50:34