为什么R无法读取此csv文件?

时间:2019-09-12 14:39:56

标签: r

我正在尝试将这个国家列表文件读入R。由于导入的数据集显示为空,R似乎无法读取它。

这是我的代码:

universe =  read.csv("country-keyword-list.csv")

没有错误消息出现。 Stata可以很好地读取文件。

这是指向相关csv文件的链接:

https://www.searchify.ca/list-of-countries/

4 个答案:

答案 0 :(得分:4)

@maydin已经给出了可以在评论中使用的解决方案,但是我认为它对显示如何自己发现它仍然很有用。请注意,下面是UTF-16LE编码的置信度最高。

library(stringi)

u <- "https://www.searchify.ca/wp-content/uploads/2016/09/country-keyword-list.csv"
L <- readLines(u, skipNul = TRUE)
stri_enc_detect(L)[[1]]
##      Encoding Language Confidence
## 1    UTF-16LE                1.00
## 2  ISO-8859-2       cs       0.42
## 3  ISO-8859-1       en       0.21
## 4  ISO-8859-9       tr       0.21
## 5    UTF-16BE                0.10
## 6   Shift_JIS       ja       0.10
## 7     GB18030       zh       0.10
## 8      EUC-JP       ja       0.10
## 9      EUC-KR       ko       0.10
## 10       Big5       zh       0.10

countries <- read.table(u, fileEncoding = "UTF-16LE")

答案 1 :(得分:3)

这不是您问题的直接答案,因为maydin和G. Grothendieck已经很好地回答了该问题,但是如果您再次遇到文件编码格式的问题,建议您尝试使用guess_encoding()函数从readr包中获取,效果很好。

install.packages("readr")
readr::guess_encoding("country-keyword-list.csv", n_max = 1000)

它将给出这样的输出:

  # A tibble: 3 x 2
  encoding   confidence
  <chr>           <dbl>
1 UTF-16LE         1.00   
2 ISO-8859-1       0.51
3 ISO-8859-2       0.38

大多数情况下,它会很好地工作,因此您几乎可以确定要选择哪种编码。

答案 2 :(得分:1)

universe <-  read.csv("country-keyword-list.csv", fileEncoding="UTF-16LE")

答案 3 :(得分:0)

尝试一下:

universe =  read.csv("https://www.searchify.ca/wp-content/uploads/2016/09/country-keyword-list.csv")