Message-ID: <6rznbzkcmn.fsf@bates4.stat.wisc.edu>
Date: 2004-02-03T22:43:28Z
From: Douglas Bates
Subject: problem with read.table
In-Reply-To: <OF7A5C2B46.CAFAAB4D-ON85256E2F.005B0393-85256E2F.005BA8AE@EU.novartis.net>
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.