Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Confusing error in R: Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : line 1 did not have 42 elements) [duplicate]

Tags:

r

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?

like image 953
bernie2436 Avatar asked Oct 18 '13 16:10

bernie2436


1 Answers

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.

e.g.

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:

header is set to TRUE if and only if the first row contains one fewer field than the number of columns

like image 52
Simon O'Hanlon Avatar answered Oct 06 '22 04:10

Simon O'Hanlon