首页 > 解决方案 > R:“输入中没有可用的行”从目录中读取多个 csv 文件时出错

问题描述

我无法从目录中读取多个 .csv 文件。这很奇怪,因为我在运行此代码块之前使用相同的代码从其他两个目录中读取文件而没有问题。

setwd("C:\\Users\\User\\Documents\\College\\MLMLMasters\\Thesis\\TaggingEffectsData\\DiveStat")

my_dive <- list.files(pattern="*.csv")
my_dive

head(my_dive)

if(!require(plyr)){install.packages("plyr")} 

DB = do.call(rbind.fill, lapply(my_dive, function(x) read.csv(x, stringsAsFactors = FALSE)))
DB

detach("package:plyr") ### I run this after I have finished creating all the dataframes because I sometimes have issues with plyr and dplyr not playing nice
if(!require(dplyr)){install.packages("dplyr")}

然后它抛出这个错误:

read.table 中的错误(file = file,header = header,sep = sep,quote = quote,:输入中没有可用的行

这没有任何意义,因为 list.files 函数有效,并且当我运行 head(my_dive) 时,我得到以下输出:

head(my_dive)
[1] "2004001_R881_TV3.csv"  "2004002_R 57_TV3.csv"  "2004002_R57_TV3.csv"   "2004003_W1095_TV3.csv"
[5] "2004004_99AB_TV3.csv"  "2004005_O176_TV3.csv"

另外,环境清楚地表明我的列表中填充了所有 614 个文件,正如我所期望的那样。

所有 csv 文件集都具有相同的文件名但不同的数据,因此必须将它们作为来自不同目录的单独数据框读取(不是我的决定,这正是该数据集的组织方式)。出于这个原因,我似乎无法弄清楚为什么这组文件让我感到悲伤,而其他两组文件读得很好,没有问题。唯一的区别应该是工作目录以及列表和数据框的名称。我认为它可能在实际目录中,但我检查了目录中只有 .csv 文件,并且 list.files 函数工作正常。我看到了一个与我的类似的先前问题,但发帖人最初没有使用 (pattern = "*.csv") 参数,这就是错误的原因。我总是使用这个论点,所以这似乎不太可能是原因。

我不确定如何使这个可复制,但我感谢提供的任何帮助。

标签: rcsvlapplyread.csv

解决方案


推荐阅读