R甚至无法读取在Excel中创建/转换的简单CSV文件

时间:2017-09-19 08:32:47

标签: r

我正在尝试使用R在Excel不擅长的工作中进行一些分析。但是,我从Excel中保存的CSV文件都不能被R读取。我尝试在OpenOffice中创建CSV也具有相同的结果。作为测试,我从教学网站下载CSV:

http://taddylab.com/teaching.html

作为测试,我尝试从这个网站打开“pickup.csv”并且它被正确阅读了。但是,当我在Excel中打开文件并将其保存为新的csv并尝试再次阅读时,它不再起作用。这表明问题与我的软件输出的csv文件有某种关联。这不是局限于Excel的问题,但显然在OpenOffice中创建的csv具有相同的问题。

对于失败的读取,我收到一个错误和多个警告:

  Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  more columns than column names
In addition: Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 1 appears to contain embedded nulls
2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 2 appears to contain embedded nulls
3: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 5 appears to contain embedded nulls
4: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 'simplest.csv'

这是两个文件中的数据,只是超级简单:

 year   miles   price   make
    2008    17638   14995   GMC
    2003    174000  8500    Dodge
    2001    1500    9998    Dodge
    2007    22422   23950   GMC
    2007    34815   19980   GMC
    1997    167000  5000    GMC
    1999    142000  2800    Dodge
    2003    86000   7900    Dodge
    2002    115000  6700    Dodge

知道这里有什么问题吗?我在韩国的工作环境中工作,但正如您所看到的,文件中没有奇怪的标记。但是,我下载的文件之间的图标确实看起来不同,所以我想知道它是否是一些编码问题:

https://imgur.com/gallery/lFKUL

编辑:这是失败的一行。这不是很有启发性

> > a<-read.csv("pickup.csv")
> > a1<-read.csv("testpickup.csv") Error in make.names(col.names, unique = TRUE) :    invalid multibyte string 1 In addition: Warning messages: 1: In read.table(file = file, header = header, sep = sep, quote =
> quote,  :   line 1 appears to contain embedded nulls 2: In
> read.table(file = file, header = header, sep = sep, quote = quote,  : 
> incomplete final line found by readTableHeader on 'testpickup.csv'

Pickup.csv是原始文件,testpickup.csv是我通过Excel运行的版本 - 例如,我在Excel中打开了pickup.csv,点击另存为csv,然后将其命名为TestPickup。请记住,这些文件具有相同的内容。为了澄清,我可以从taddylab页面中读取.sv文件,只是因为某种原因,我的Excel创建的csv文件无法读取“read.csv”。

解决:显然,它的加密阻碍了它。不确定这是否适用于每个文件或每个设置,但我将excel数据复制并粘贴到一个文本文件中,最终作为制表符分隔表。请阅读:

   df2<-read.table("samplefile.txt", sep="\t", header=TRUE)

现在我可以玩数据了

2 个答案:

答案 0 :(得分:0)

使用函数read.csv,因为它使用标题和分隔符的正确设置,这可能是更一般的read.table函数的问题。我刚用页面上的1个csv文件尝试过,它工作正常。

答案 1 :(得分:0)

显然,它的加密阻碍了它。没有什么比学习更有用了,对不起,如果你在公司场合,那就要注意了。

编辑:不确定这是否适用于每个文件或每个设置,但我将excel数据复制并粘贴到一个文本文件中,最终作为制表符分隔表。请阅读:

df2<-read.table("samplefile.txt", sep="\t", header=TRUE)

现在我可以玩数据了