write.fwf2.RdReads and writes files in fixed width format. The functions are written
for being more efficient than utils::read.fwf.
write.fwf2(dat, format.full, format.round, file)
read.fwf2( file, format.full, variables=NULL)Data frame (or matrix). Variables can be numeric or strings. However,
string length of string variables are not allowed to be larger
than what is specified in format.full.
Vector with fixed width variable lengths
Vector with digits after decimals
File name
Optional vector with variable names
if (FALSE) {
#############################################################################
# EXAMPLE 1: Write and read a file in fixed width format
#############################################################################
# set working directory
path <- "P:/ARb/temp"
setwd(path)
# define a data frame
set.seed(9876)
dat <- data.frame( "x"=seq( 1, 21, len=5), "y"=stats::runif( 5 ),
"z"=stats::rnorm( 5 ) )
# save data frame in fixed width format
format.full <- c(6, 6, 8 )
format.round <- c( 0, 2, 3 )
write.fwf2( dat, format.full=format.full, format.round=format.round,
file="testdata" )
# read the data
dat1 <- miceadds::read.fwf2( file="testdata.dat", format.full=c(6,6,8),
variables=c("x","y","z") )
# check differences between data frames
dat - dat1
#############################################################################
# EXAMPLE 2: Write datasets containing some string variables in fwf format
#############################################################################
n <- 5
dat <- data.frame( "x"=stats::runif(n, 0, 9 ), "y"=LETTERS[1:n] )
write.fwf2(dat, format.full=c(4,2), format.round=c(2,0), file="testdata")
}