在R";中读取.csv();“输入”中没有可用的行;错误

在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-

我试图在目录中循环并读取列表中的所有文件。这些文件都来自这里找到的同一个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-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[`to
    list.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
    >