Read.csv() throws error

只愿长相守 提交于 2019-12-01 16:05:08

问题


I have been trying to read the excel file but seems like there is something wrong. The file is stored in Documents folder in excel format.

These are the error messages that I get :

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 

also, since these were warnings , I happened to ignore them. But nothing has been read into "table" either:

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

回答1:


read.csv doesn't read XLS(X) files, only CSV files. Try opening your Excel file in Excel, exporting it to CSV and reissuing your read.csv command (depending on your system language, you might want to use read.csv2 instead).




回答2:


I had a similar error, e.g:

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'

For solution I tried:

A <- read.csv("tel.csv", sep = ",",
              fileEncoding="utf-16")

It worked.




回答3:


If you're trying to read in an xlsx file, use the xlsx library, or export them as csv files. read.table or read.csv will not work for Excel files.

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



回答4:


First of all, check that your CSV is in fact a CSV rather than an Excel file (you hint that that might be the case in your question). read.csv reads in delimited text files and can't handle Excel files (either .xls or .xlsx).

If it is a delimited text file then looking at the error message looks like your CSV (well, tab separated values file) might have some empty column names which read.csv() is unable to handle.

The second warning also then thinks that the last row of your file is incomplete which may be caused by whatever is outputting the file to combine separators when some of the fields are empty.

They're warnings because they don't stop the program or exit it but it's saying that things might not be as you expect.




回答5:


By definition a .csv file has comma separated values; in your R code you use tab ("\t") as the delimiter. If you have an actual csv file, you should be able to enter:

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

or alternatively

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

though really the first command should suffice. It's strange that you have to specificy a tab to delimit columns in a csv file, unless excel did something wonky to your data table.

You could always use the xlsx package in R and then write the file to the format you want as well.




回答6:


The file you are trying to read could be a UTF-16 encoded file as if it were not so encoded. Try with the fileEncoding = "UTF-16" argument




回答7:


One possible cause is accidentally trying to load an alias to the file instead of the file itself. In R for Mac, trying to use read.csv on an alias gives the error you got.



来源:https://stackoverflow.com/questions/25872946/read-csv-throws-error

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!