Read.csv()抛出错误

时间:2014-09-16 15:35:50

标签: r read.csv

我一直在尝试阅读excel文件但看起来有些不对劲。   该文件以excel格式存储在Documents文件夹中。

这些是我收到的错误消息:

table <- read.csv(file.choose(),header=T,sep='\t')

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 

另外,由于这些是警告,我碰巧忽略了它们。但是没有任何东西被读入“表格”:

table
# [1] PK...
# <0 rows> (or 0-length row.names)

7 个答案:

答案 0 :(得分:9)

read.csv不读取XLS(X)文件,只读取CSV文件。尝试在Excel中打开Excel文件,将其导出为CSV并重新发布read.csv命令(取决于您的系统语言,您可能希望改为使用read.csv2)。

答案 1 :(得分:6)

我有类似的错误,例如:

package com.mvc.demo;

    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;

    import org.springframework.web.servlet.ModelAndView;

    public class MvcDemo {
    @RequestMapping(value="/login", method = RequestMethod.GET)

     public String showForm( )
     {
       ModelAndView mv = new ModelAndView("login");
       return mv;


       } 
     }

对于我试过的解决方案:

A <- read.csv("tel.csv", sep = ",")
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  empty beginning of file
In addition: Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  invalid input found on input connection 'tel.csv'
2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 1 appears to contain embedded nulls
3: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 'tel.csv'

有效。

答案 2 :(得分:3)

如果您正在尝试读取xlsx文件,请使用xlsx库,或将它们导出为csv文件。 read.table或read.csv不适用于Excel文件。

install.packages("xlsx")
library(xlsx)
table <- read.xlsx("file.xlsx", 1)

答案 3 :(得分:1)

首先,检查您的CSV实际上是CSV而不是Excel文件(您提示您的问题可能就是这种情况)。 read.csv读取分隔的文本文件,无法处理Excel文件(.xls或.xlsx)。

如果它是一个分隔的文本文件,那么查看错误消息看起来就像你的CSV(好的,制表符分隔的值文件)可能有一些read.csv()无法处理的空列名。

然后第二个警告也会认为文件的最后一行是不完整的,这可能是由于某些字段为空时输出文件以组合分隔符所引起的。

他们是警告,因为他们没有停止程序或退出程序,但它说事情可能不像你期望的那样。

答案 4 :(得分:1)

根据定义,.csv文件具有逗号分隔值;在您的R代码中,您使用tab(“\ t”)作为分隔符。如果您有一个实际的csv文件,您应该能够输入:

csvfile<-read.csv("csvfilename.csv")

或者

csvfile<-read.table("csvfilename.csv",sep=",")

虽然第一个命令真的应该足够了。奇怪的是,你必须指定一个标签来分隔csv文件中的列,除非excel对你的数据表做了一些不可思议的事情。

您始终可以在R中使用xlsx包,然后将文件写入所需的格式。

答案 5 :(得分:0)

您尝试读取的文件可能是UTF-16编码文件,就好像它没有编码一样。尝试使用fileEncoding =“UTF-16”参数

答案 6 :(得分:0)

一个可能的原因是无意中尝试将别名加载到文件而不是文件本身。在R for Mac中,尝试在别名上使用read.csv会产生错误。