library(gdata) ## Test data num <- round(c(733070.345678, 1214213.78765456, 553823.798765678, 1085022.8876545678, 571063.88765456, 606718.3876545678, 1053686.6, 971024.187656, 631193.398765456, 879431.1), digits=3) testData <- data.frame(num1=c(1:10, NA), num2=c(NA, seq(from=1, to=5.5, by=0.5)), num3=c(NA, num), int1=c(as.integer(1:4), NA, as.integer(4:9)), fac1=factor(c(NA, letters[1:9], "hjh")), fac2=factor(c(letters[6:15], NA)), cha1=c(letters[17:26], NA), cha2=c(NA, "longer", letters[25:17]), stringsAsFactors=FALSE) levels(testData$fac1) <- c(levels(testData$fac1), "unusedLevel") testData$Date <- as.Date("1900-1-1") testData$Date[2] <- NA testData$POSIXt <- as.POSIXct(strptime("1900-1-1 01:01:01", format="%Y-%m-%d %H:%M:%S")) testData$POSIXt[5] <- NA ## Tests ## Default write.fwf(testData) ## NA should be - write.fwf(x=testData, na="-") ## NA should be -NA- write.fwf(x=testData, na="-NA-") ## Some other separator than space write.fwf(testData[, 1:4], sep="-mySep-") ## Justify right for character columns write.fwf(testData, justify="right") ## Justify right for character columns, track na values write.fwf(testData, justify="right", na="!") ## With quotes write.fwf(testData, quote=TRUE) ## With rownames write.fwf(testData, rownames=TRUE) ## Without colnames write.fwf(testData, colnames=FALSE) ## Without colnames, with rownames write.fwf(testData, colnames=FALSE, rownames=TRUE) ## With rownames and colnames and rowCol write.fwf(testData, rownames=TRUE, rowCol="HI!")