我尝试从这里导入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)