r语言 - 通过read.csv导入CSV文件,但函数识别出错误的列数



我尝试从这里导入CSV文件:https://covid19.who.int/WHO-COVID-19-global-table-data.csv使用read.csv函数:

WHO_data <- read.csv("https://covid19.who.int/WHO-COVID-19-global-table-data.csv")

但是我得到的WHO_data有12列,并将第一列识别为行名。我尝试了另一种方法,通过获取标题而不是数据框架:

library(readr)
WHO_data <- read_csv("https://covid19.who.int/WHO-COVID-19-global-table-data.csv")

然后给出如下错误:

Warning: 1 parsing failure.
row col   expected     actual                                                         file
1  -- 12 columns 13 columns 'https://covid19.who.int/WHO-COVID-19-global-table-data.csv'

谁能帮我解释一下为什么会发生这种情况以及如何解决这个问题?

文件格式似乎不正确。第二行末尾多了一个逗号。您可以读取原始行数据,删除逗号,然后传递给read.csv。例如

file <- "https://covid19.who.int/WHO-COVID-19-global-table-data.csv"
rows <- readLines(file)
rows[2] <- gsub(",$", "", rows[2])
WHO_data  <- read.csv(text=rows)

这里是基于data.table包的另一个解决方案。如果您想返回一个data.frame(而不是data.table),您可以为fread函数额外指定参数data.table=FALSE:

library(data.table)
file <- "https://covid19.who.int/WHO-COVID-19-global-table-data.csv"
WHO_data <- fread(file, select=1:12, fill=TRUE)

相关内容

  • 没有找到相关文章

最新更新