Skip to content

read.csv trap

1 message · Ben Bolker

#
Ben Bolker <bbolker <at> gmail.com> writes:
Bump.  Is there any opinion about this from R-core??
Will I be scolded if I submit this as a bug ... ??
[snip snip]
===============
writeLines(c("A,B,C,D",
            "1,a,b,c",
            "2,f,g,c",
            "3,a,i,j",
            "4,a,b,c",
            "5,d,e,f",
            "6,g,h,i,j,k,l,m,n"),
          con=file("test.csv"))
read.csv("test.csv")
try(read.csv("test.csv",fill=FALSE))
## assumes header=TRUE, fill=TRUE; should be a little more careful
##  with comment, quote arguments (possibly explicit)
## ... contains information about quote, comment.char, sep
Read.csv <- function(fn,sep=",",...) {
 colnames <- scan(fn,nlines=1,what="character",sep=sep,...)
 ncolnames <- length(colnames)
 maxcols <- max(count.fields(fn,sep=sep,...))
 if (maxcols>ncolnames) {
   colnames <- c(colnames,paste("V",(ncolnames+1):maxcols,sep=""))
 }
 ## assumes you don't have any other columns labeled "V[large number]"
 read.csv(fn,...,col.names=colnames)
}

Read.csv("test.csv")