get.delim {reader}R Documentation

Determine the delimiter for a text data file.

Description

Reads the first few lines of data in a text file and attempts to infer what delimiter is in use, based on the 'delims' argument that would result in the most consistent number of columns in the first 'n' lines of data. Searches preferentially for delimiters implying between 2 and 'large' columns, then for >large, and lastly for 1 column if nothing else gives a match.

Usage

get.delim(fn, n = 10, comment = "#", skip = 0, delims = c("\t",
  "\t| +", " ", ";", ","), large = 10, one.byte = TRUE)

Arguments

fn

name of the file to parse

n

the number of lines to read to make the inference

comment

a comment symbol to ignore lines in files

skip

number of lines to skip at top of file before processing

delims

the set of delimiters to test for

large

search initially for delimiters that imply more than 1, and less than this 'large' columns; if none in this range, look next at >large.

one.byte

only check for one-byte delimiters, [e.g, whitespace regular expr is >1 byte]

Value

returns character of the most likely delimiter

Author(s)

Nicholas Cooper nick.cooper@cimr.cam.ac.uk

See Also

reader

Examples

orig.dir <- getwd(); setwd(tempdir()); # move to temporary dir
df <- data.frame(ID=paste("ID",101:110,sep=""),
  scores=sample(70,10,TRUE)+30,age=sample(7,10,TRUE)+11)
# save data to various file formats
test.files <- c("temp.txt","temp2.txt","temp3.csv")
write.table(df,file=test.files[1],col.names=FALSE,row.names=FALSE,sep="|",quote=TRUE)
write.table(df,file=test.files[2],col.names=TRUE,row.names=TRUE,sep="\t",quote=FALSE)
write.csv(df,file=test.files[3])
# report the delimiters
for (cc in 1:length(test.files)) { 
  cat("\n",test.files[cc],": ")
  print(get.delim(test.files[cc])) }
unlink(test.files)
setwd(orig.dir) # reset working dir to original

[Package reader version 1.0.6 Index]