【问题标题】:Having trouble reading an .csv database读取 .csv 数据库时遇到问题
【发布时间】:2019-01-28 00:29:32
【问题描述】:

我正在尝试使用readr::read_csv 读取.csv 文件

readr::read_csv("my_file.csv")

但我收到以下错误:

Parsed with column specification:
cols(
  col_character()
)
Error in read_tokens_(data, tokenizer, col_specs, col_names, locale_,  : 
  Evaluation error: Column 1 must be named.

到底发生了什么?

.csv 文件可以在这里找到: https://drive.google.com/file/d/1W_ZetpOfWDuSVhiIVAa0sEcRE4ujCSXB/view?usp=sharing

【问题讨论】:

  • @Gautam 是的,本来我也是这么想的,但是链接的帖子是关于read.csv 而不是readr::read_csv

标签: r csv readr


【解决方案1】:

问题在于编码,this post 展示了如何使用read.csv 来完成:

read.csv("BRA_females-45q15.csv", fileEncoding="UTF-16LE")

使用readr::read_csv实现同样的效果,我们可以如下做,首先我们可以找出编码:

guess_encoding(file = "BRA_females-45q15.csv")
# # A tibble: 3 x 2
#   encoding   confidence
#   <chr>           <dbl>
#   1 UTF-16LE         1   
# 2 ISO-8859-1       0.8 
# 3 ISO-8859-2       0.51

然后将read_csv语言环境一起使用:

read_csv("BRA_females-45q15.csv", locale = locale(encoding = "UTF-16LE"))

# Error in guess_header_(datasource, tokenizer, locale) : 
#   Incomplete multibyte sequence

但这又给我们一个错误,看起来像a know issue

Hadley: “是的,这是一个需要思考的大问题。一般来说,readr 目前假设它可以逐字节读取,而其他任何事情都需要很多工作/思想。”

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 2023-01-20
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    相关资源
    最近更新 更多