首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码(?在R中读取CSV文件时出错

编码(?在R中读取CSV文件时出错
EN

Stack Overflow用户
提问于 2015-08-24 10:37:41
回答 1查看 167关注 0票数 0

我用LibreOffice和gedit在Ubuntu14.04LTS中打开一个CSV文件,在这两个应用程序中我都可以看到文件OK。

我用很多方法尝试使用read.csv()将该文件读入R中,但它正在将空白" "替换为dots ".",以及与字母不同的其他奇怪的东西。

我试过了

代码语言:javascript
复制
codepages <- setNames(iconvlist(), iconvlist())
x <- lapply(codepages, function(enc) try(read.csv("ticket.csv", fileEncoding=enc)))

但无论我插入哪种编码,它总是失败的。

编辑:

我把文件寄给你

https://drive.google.com/open?id=0B1P26eyiBDcNWWR0OGJwU0E4V00

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-24 11:12:37

(在linux shell中)

代码语言:javascript
复制
$ enca -f -L none ticket_import_template.csv
7bit ASCII characters

$ file ticket_import_template.csv
ticket_import_template.csv: ASCII text, with very long lines

看起来像普通的ASCII。在R:

代码语言:javascript
复制
dplyr::glimpse(read.csv("ticket_import_template.csv", check.names=FALSE))

## Observations: 1
## Variables:
## $ Ticket Number                             (lgl) NA
## $ *Open Date                                (fctr) 01/08/15 11:00
## $ 1st Response Date                         (lgl) NA
## $ Due Date                                  (lgl) NA
## $ Close Date                                (lgl) NA
## $ Status Type                               (lgl) NA
## $ Client (user name)                        (int) 950000
## $ Localizaci?n                              (lgl) NA
## $ *Request Type (semicolon delimited)       (fctr) Instalaciones
## $ Priority Type                             (lgl) NA
## $ Subject                                   (lgl) NA
## $ *Request Detail                           (fctr) PROBANDO
## $ Tech Username                             (lgl) NA
## $ Recurso Numbers                           (lgl) NA
## $ Notes                                     (lgl) NA
## $ Room                                      (lgl) NA
## $ Department                                (lgl) NA
## $ Tecnico asignado                          (lgl) NA
## $ Delete? (Y/N)                             (lgl) NA
## $ NOTE: * = Field required for new records. (lgl) NA

您也可以使用:

  • readr::read_csv("ticket_import_template.csv")
  • rio::import("ticket_import_template.csv")
  • data.table::fread("ticket_import_template.csv")

此外,由于它们的默认值是将空格(以及更多的)保留在标题列名中。

read.csv在列标题中添加了“理智的.”,因为它们中有空格。实际上,您最终会后悔用了很长时间的空格(如check.names == FALSE)或虚线列名。您应该做的第一件事就是重命名这些列。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32180208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档