I am new to R. I am trying to read in a "CSV" file that is space-space delimited. The file does not have headers. It looks like this
Element1 Element2 Element5 Element6 Element7
I am trying to read it in like this:
> mydata <- read.table("/PathTo/file.csv") Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : line 1 did not have 14 elements
Why does it expect 14 elements in the first row? How do I import this file?
This question is tagged with
~ Asked on 2013-10-18 16:55:55
read.table wants to return a
data.frame, which must have an element in each column. Therefore R expects each row to have the same number of elements and it doesn't fill in empty spaces by default. Try
read.table("/PathTo/file.csv" , fill = TRUE ) to fill in the blanks.
read.table( text= "Element1 Element2 Element5 Element6 Element7" , fill = TRUE , header = FALSE ) # V1 V2 V3 #1 Element1 Element2 #2 Element5 Element6 Element7
A note on whether or not to set
header = FALSE...
read.table tries to automatically determine if you have a header row thus:
headeris set to
TRUEif and only if the first row contains one fewer field than the number of columns
~ Answered on 2013-10-18 17:22:34
To read characters try
If you're reading numeric values, then just use
scan by default will use white space as separator. The type of the second arg defines 'what' to read (defaults to double()).
~ Answered on 2013-10-18 17:10:26