在R";中读取.csv();“输入”中没有可用的行;错误
我试图在目录中循环并读取列表中的所有文件。这些文件都来自这里找到的同一个github repo在R";中读取.csv();“输入”中没有可用的行;错误,r,lapply,read.csv,R,Lapply,Read.csv,我试图在目录中循环并读取列表中的所有文件。这些文件都来自这里找到的同一个github repo path=“~/Documents/Corona\u Virus/COVID-19/archived\u data/archived\u daily\u case\u updates/” setwd(路径) file.names要在R中本地读取文件,可以执行以下操作 在Github中分叉新冠病毒-19存储库 将存储库克隆到要在其上运行RStudio/R的计算机 在RStudio中,从克隆的COVID-
path=“~/Documents/Corona\u Virus/COVID-19/archived\u data/archived\u daily\u case\u updates/”
setwd(路径)
file.names要在R中本地读取文件,可以执行以下操作
在Github中分叉新冠病毒-19存储库
将存储库克隆到要在其上运行RStudio/R的计算机
在RStudio中,从克隆的COVID-19存储库的根目录开始创建项目
此时,当前R工作目录是克隆的Github存储库的根目录。下面的代码将检索所有每日存档的文件,并将它们读入数据帧列表中
#
# archived days data
#
theFiles <- list.files("./archived_data/archived_daily_case_updates",pattern="*.csv",full.names = TRUE)
dataList <- lapply(theFiles,read.csv,stringsAsFactors=FALSE)
请注意,list.files()
中的full.names=TRUE
参数需要在生成的文件名列表中包含路径
> # show path names in list of files
> head(theFiles)
[1] "./archived_data/archived_daily_case_updates/01-21-2020_2200.csv"
[2] "./archived_data/archived_daily_case_updates/01-22-2020_1200.csv"
[3] "./archived_data/archived_daily_case_updates/01-23-2020_1200.csv"
[4] "./archived_data/archived_daily_case_updates/01-24-2020_0000.csv"
[5] "./archived_data/archived_daily_case_updates/01-24-2020_1200.csv"
[6] "./archived_data/archived_daily_case_updates/01-25-2020_0000.csv"
>
是什么导致了原始帖子中的错误?
最初的海报问,为什么每日案例更新的代码在对我的回答的评论中失败。我的假设是子目录中存在README.md
文件导致read.csv()
失败。由于我的答案使用了list.files()
中的pattern='*.csv'
,因此它避免了使用read.csv()
读取非csv文件
我运行了以下代码来测试这个假设
# replicate original error
originalDirectory <- getwd()
path2 =paste0(originalDirectory, "/csse_covid_19_data/csse_covid_19_daily_reports")
setwd(path2)
daily_file_names<-list.files(path2)
daily_DAYS<-lapply(daily_file_names,read.csv,sep=",")
要在R中本地读取文件,可以执行以下操作
在Github中分叉新冠病毒-19存储库
将存储库克隆到要在其上运行RStudio/R的计算机
在RStudio中,从克隆的COVID-19存储库的根目录开始创建项目
此时,当前R工作目录是克隆的Github存储库的根目录。下面的代码将检索所有每日存档的文件,并将它们读入数据帧列表中
#
# archived days data
#
theFiles <- list.files("./archived_data/archived_daily_case_updates",pattern="*.csv",full.names = TRUE)
dataList <- lapply(theFiles,read.csv,stringsAsFactors=FALSE)
请注意,list.files()
中的full.names=TRUE
参数需要在生成的文件名列表中包含路径
> # show path names in list of files
> head(theFiles)
[1] "./archived_data/archived_daily_case_updates/01-21-2020_2200.csv"
[2] "./archived_data/archived_daily_case_updates/01-22-2020_1200.csv"
[3] "./archived_data/archived_daily_case_updates/01-23-2020_1200.csv"
[4] "./archived_data/archived_daily_case_updates/01-24-2020_0000.csv"
[5] "./archived_data/archived_daily_case_updates/01-24-2020_1200.csv"
[6] "./archived_data/archived_daily_case_updates/01-25-2020_0000.csv"
>
是什么导致了原始帖子中的错误?
最初的海报问,为什么每日案例更新的代码在对我的回答的评论中失败。我的假设是子目录中存在README.md
文件导致read.csv()
失败。由于我的答案使用了list.files()
中的pattern='*.csv'
,因此它避免了使用read.csv()
读取非csv文件
我运行了以下代码来测试这个假设
# replicate original error
originalDirectory <- getwd()
path2 =paste0(originalDirectory, "/csse_covid_19_data/csse_covid_19_daily_reports")
setwd(path2)
daily_file_names<-list.files(path2)
daily_DAYS<-lapply(daily_file_names,read.csv,sep=",")
运行head(file.names)
时会发生什么?列表中是否包含文件的完整路径名?当我运行>head(每日文件名)[1]“01-22-2020.csv”“01-23-2020.csv”“01-24-2020.csv”“01-25-2020.csv”“01-26-2020.csv”“01-27-2020.csv”时,这些是该目录中的完整文件名,但不是完整文件路径运行head(文件名)
时会发生什么?列表中是否包含文件的完整路径名?当我运行>head(daily_file_names)[1]“01-22-2020.csv”“01-23-2020.csv”“01-24-2020.csv”“01-25-2020.csv”“01-26-2020.csv”“01-27-2020.csv”时,这是该目录中的完整文件名,但不是完整文件路径。我尝试了第二个目录,它顺利运行,非常感谢。您认为是完整的.names=T还是模式=“.csv”更能让它工作?第二个目录中有一个README.md文件,这就是我使用pattern=“*.csv”
参数的原因。lappy()
尝试将自述文件作为csv加载时可能失败。您可以通过将模式参数添加到原始脚本中来确认这一点。@BLP92-查看“我的答案”的更新,在这里我复制了原始错误,并通过添加pattern=
*.csv[`tolist.files()
。在第二个目录中尝试了这一点,但没有出现任何问题,谢谢!您认为是完整的.names=T还是模式=“.csv”更有效?第二个目录中有一个README.md文件,这就是为什么我使用了pattern=“*.csv”
参数。可能是lapply()
尝试将自述文件作为csv加载时失败。您可以通过将模式参数添加到原始脚本中来确认这一点。@BLP92-查看对我的答案的更新,在这里我复制了原始错误,并通过添加模式=
*.csv[`to列表.files()
来解决它。
> # replicate original error
> originalDirectory <- getwd()
> path2 =paste0(originalDirectory, "/csse_covid_19_data/csse_covid_19_daily_reports")
> setwd(path2)
> daily_file_names<-list.files(path2)
> daily_DAYS<-lapply(daily_file_names,read.csv,sep=",")
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
>
> # use pattern = "*.csv"
> daily_file_names<-list.files(path2,pattern = "*.csv")
> daily_DAYS<-lapply(daily_file_names,read.csv,sep=",")
> head(daily_DAYS[[1]])
ï..Province.State Country.Region Last.Update Confirmed Deaths Recovered
1 Anhui Mainland China 1/22/2020 17:00 1 NA NA
2 Beijing Mainland China 1/22/2020 17:00 14 NA NA
3 Chongqing Mainland China 1/22/2020 17:00 6 NA NA
4 Fujian Mainland China 1/22/2020 17:00 1 NA NA
5 Gansu Mainland China 1/22/2020 17:00 NA NA NA
6 Guangdong Mainland China 1/22/2020 17:00 26 NA NA
>