Read.csv() throws error
Solution 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).
Solution 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.
Solution 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)
Solution 4
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.
Solution 5
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.
Minal Murkhande
Updated on July 26, 2022Comments
-
Minal Murkhande almost 2 years
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)
-
Henry almost 7 years
-
Henry almost 7 yearsand also: stackoverflow.com/questions/23209464/… including highlighting the
skipNul = TRUE,
option
-
-
ydaetskcoR over 9 yearsThe error message has his command:
table<-read.csv(file.choose(),header=T,sep='\t')
-
Waldir Leoncio over 9 years@ydaetskcoR, you're right, I got confused with the
file.choose()
command (which is some really cool function I've just learned about). Editing. -
ydaetskcoR over 9 yearsCsv tends to just imply a delimited text file. Most csv parsers will allow a choice of delimiter and r's read.csv is no exception.
-
Matt Munson over 6 years
-
Rafa over 6 yearsIndeed, I agree.