【问题标题】:Skip only Non ASCII character with read.table仅使用 read.table 跳过非 ASCII 字符
【发布时间】:2017-07-18 08:33:13
【问题描述】:

我有一个包含非 ASCII 字符的 csv 文件。我只是想删除这些字符并读取我的 csv 文件。

> tables <- lapply('/.././abc.csv', read.csv,header=F,stringsAsFactors=FALSE,fileEncoding="UTF-8")
Warning message:
In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  invalid input found on input connection '/.././abc.csv'
> df= suppressWarnings(do.call(rbind, tables)) 

它没有读取完整的文件。它只读取了非 ASCII 字符之前的记录。它跳过了非 ASCII 字符之后的所有记录。

我不能使用 iconv('/.././abc.csv', "latin1", "ASCII", sub=""),因为它需要 x 作为向量。

cat '/.././abc.csv'
88036,120,151036.656250,2017-07-17 22:27:49,17-07-17 22:27:49
88036,120,151036.671875,2017-07-17 22:27:53,17-07-17 22:27:53
88036,310,151036.687500,2017-07-17 22:27:58,17-07-17 22:27:58
88036,310,151036.703▒▒F▒▒B▒▒▒D▒%▒▒▒2▒T▒▒K222642,17-07-17 22:28:03,2017-07-17 22:28:03
88036,310,151036.484375,2017-07-17 22:26:54,17-07-17 22:26:54
88036,310,151036.500000,2017-07-17 22:26:59,17-07-17 22:26:59

读取 CSV 文件后,它正在跳过最后 2 条记录。任何帮助。

【问题讨论】:

    标签: r csv encoding iconv read.table


    【解决方案1】:

    如果你先读然后再读会怎样

    td &lt;- td[,lapply(.SD,function(x){ iconv(x, "latin1", "ASCII", sub="")})]

    假设您将 csv 文件读取为 data.table

    【讨论】:

      猜你喜欢
      • 2012-01-24
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      相关资源
      最近更新 更多