问题
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