read.csv() 在 R "no lines available in input" 错误
read.csv() in R "no lines available in input" error
我正在尝试遍历目录并读取列表中的所有文件。这些文件都来自此处 https://github.com/CSSEGISandData/COVID-19
的同一个 github 存储库
path = "~/Documents/Corona_Virus/COVID-19/archived_data/archived_daily_case_updates/"
setwd(path)
file.names<-list.files(path)
archived_DAYS<-lapply(file.names,read.csv,sep=",",header=T)
顺利起飞,但随后
path2 = "~/Documents/Corona_Virus/COVID-19/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=",")
抛出错误
”错误 read.table(file = file, header = header, sep = sep, quote = quote, :
输入中没有可用的行
然而,两个目录中的文件类型都是 .csv 文件,它们的结构都相同。我不明白为什么它会抛出该错误,因为每个文件都填充了数据
要在 R 中本地读取文件,可以执行以下操作。
- 在 Github
中创建 COVID-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)
我们可以打印结果列表中第一个数据框的前几行数据,如下所示。
> head(dataList[[1]])
ï..Province.State Country.Region Last.Update Confirmed Deaths Recovered Suspected
1 Anhui Mainland China 1/21/2020 10pm NA NA NA 3
2 Beijing Mainland China 1/21/2020 10pm 10 NA NA NA
3 Chongqing Mainland China 1/21/2020 10pm 5 NA NA NA
4 Guangdong Mainland China 1/21/2020 10pm 17 NA NA 4
5 Guangxi Mainland China 1/21/2020 10pm NA NA NA 1
6 Guizhou Mainland China 1/21/2020 10pm NA NA NA 1
>
请注意,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"
>
原来的错误是什么导致的post?
原poster在我的回答评论里问为什么每日案例更新的代码失效了。我的假设是子目录中存在 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=",")
我收到了与原始 post 中记录的相同的错误。
> # 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
>
将 pattern = '*.csv'
添加到 list.files()
后,代码可以正常工作。
> # 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
>
我正在尝试遍历目录并读取列表中的所有文件。这些文件都来自此处 https://github.com/CSSEGISandData/COVID-19
的同一个 github 存储库path = "~/Documents/Corona_Virus/COVID-19/archived_data/archived_daily_case_updates/"
setwd(path)
file.names<-list.files(path)
archived_DAYS<-lapply(file.names,read.csv,sep=",",header=T)
顺利起飞,但随后
path2 = "~/Documents/Corona_Virus/COVID-19/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=",")
抛出错误
”错误 read.table(file = file, header = header, sep = sep, quote = quote, : 输入中没有可用的行
然而,两个目录中的文件类型都是 .csv 文件,它们的结构都相同。我不明白为什么它会抛出该错误,因为每个文件都填充了数据
要在 R 中本地读取文件,可以执行以下操作。
- 在 Github 中创建 COVID-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)
我们可以打印结果列表中第一个数据框的前几行数据,如下所示。
> head(dataList[[1]])
ï..Province.State Country.Region Last.Update Confirmed Deaths Recovered Suspected
1 Anhui Mainland China 1/21/2020 10pm NA NA NA 3
2 Beijing Mainland China 1/21/2020 10pm 10 NA NA NA
3 Chongqing Mainland China 1/21/2020 10pm 5 NA NA NA
4 Guangdong Mainland China 1/21/2020 10pm 17 NA NA 4
5 Guangxi Mainland China 1/21/2020 10pm NA NA NA 1
6 Guizhou Mainland China 1/21/2020 10pm NA NA NA 1
>
请注意,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"
>
原来的错误是什么导致的post?
原poster在我的回答评论里问为什么每日案例更新的代码失效了。我的假设是子目录中存在 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=",")
我收到了与原始 post 中记录的相同的错误。
> # 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
>
将 pattern = '*.csv'
添加到 list.files()
后,代码可以正常工作。
> # 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
>