[R] problem with read.table

Douglas Bates bates at stat.wisc.edu
Tue Feb 3 23:43:28 CET 2004


ryszard.czerminski at pharma.novartis.com writes:

> Any ideas why read.table complains about not correct number of elements in 
> line
> while readLine/strsplit indicate that all lines have the same number of 
> elements ?
> 
> R
> 
> 
> > tbl <- read.table('tmp', header = T, sep = '\t')
> Error in scan(file = file, what = what, sep = sep, quote = quote, dec = 
> dec,  : 
>         line 32 did not have 27 elements
> > lines <- readLines('tmp')
> > v <- 1:length(lines)
> > i <- 0; for (line in lines) { i <- i + 1; v[i] <- length(strsplit(line, 
> '\t')[[1]]) }
> > v
>  [1] 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 
> 27 27
> [26] 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 
> 27 27
> [51] 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
> > sum((v - v[1])^2)
> [1] 0
> > length(strsplit(lines[32], '\t')[[1]])
> [1] 27

Try count.fields to see what line is giving problems.  Watch
especially for comment characters (default is '#') and quote
characters.  My good friends in Biological Sciences (including my
spouse and one of my children) have a habit of incorporating 3' and 5'
in descriptive text and that always trips me up.




More information about the R-help mailing list