Why don't you just use 'sprintf' and set the format up to what you want: > x <- head(iris) > cat(sprintf("%6.1f%6.1f%6.1f%6.1f %-20s\n", x[,1], x[,2], x[,3], x[,4], x[,5]), sep='') 5.1 3.5 1.4 0.2 setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa 5.4 3.9 1.7 0.4 setosa > >
On 11/22/05, Gabor Grothendieck <[EMAIL PROTECTED]> wrote: > > On 11/22/05, Gorjanc Gregor <[EMAIL PROTECTED]> wrote: > > > Hi > > > > > > can you please explain why do you need it? What do you want to do with > the exported file? > > > > > > I wonder what type of software can not accept any reasonable delimiter > and requires fwf files. > > > > > > The only workaround I can imagine is to transfer all columns to > character and add leading spaces to each item which is > shorter than > longest item in specified column to equalize length of all items in column > and then use > > > > > > write.table( tab, "file.txt", sep=" ", row.names=F) > > > > > > as suggested. > > > > > > But I still wonder why? > > > > OK, I did not want to be to specific, but here it goes. I am using some > > "special" software for variance component estimation and prediction in > > genetics. Programs are VCE and PEST (http://w3.tzv.fal.de/%7Eeg/) and > > they both read data in FW (fixed width) format. For those programs > > you can only give data in such format and it is really tedious to do so, > > but that is the way it is. > > > > > > > > If you used e.g. > > > write.table( tab, "file.xls", sep="\t", row.names=F) > > > > > > you can open it directly by spreadsheet program just by clickung on it > and everything shall be properly aligned. > > > > > > > I am fully aware of this, but I do need FW format. I will try with > sprintf(), but > > this looks very though for me. > > > > > >>Petr Pikal wrote: > > > >>> Hi > > > >>> > > > >>> did you tried something like > > > >>> > > > >>> write.table( tab, "file.txt", sep="\t", row.names=F) > > > >>> > > > >>> which writes to tab separated file? > > > >>> > > > >> > > > >>Petr thanks, but I do not want a tab delimited file. I need spaces > > > >>between columns. > > > > > > > > write.table( tab, "file.txt", sep="", row.names=F) > > > > Can it do what you want? > > > > > > Ronggui thanks, > > > > > > but this does not work also. For example I get something like > > > this bellow > > > > > > "26" "1" 42 "DA" "DA" "lipa" "Monika" > > > "26" "1" 42 "DA" "DA" "lipa" "Monika" > > > "27" "1" 41 "DA" "DA" "smreka" "Monika" > > > "27" "1" 41 "DA" "DA" "smreka" "Monika" > > > > > > and you can see, that there is a problem, when all "values" > > > in a column do not have the same length. I need to get > > > > > > "26" "1" 42 "DA" "DA" "lipa" "Monika" > > > "26" "1" 42 "DA" "DA" "lipa" "Monika" > > > "27" "1" 41 "DA" "DA" "smreka" "Monika" > > > "27" "1" 41 "DA" "DA" "smreka" "Monika" > > > > > > i.e. columns should be properly aligned. > > > > > Try this: > > > irish <- head(iris) > > write(t(apply(irish, 2, format)), file = "", ncol = ncol(irish)) > 5.1 3.5 1.4 0.2 setosa > 4.9 3.0 1.4 0.2 setosa > 4.7 3.2 1.3 0.2 setosa > 4.6 3.1 1.5 0.2 setosa > 5.0 3.6 1.4 0.2 setosa > 5.4 3.9 1.7 0.4 setosa > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > -- Jim Holtman Cincinnati, OH +1 513 247 0281 What the problem you are trying to solve? [[alternative HTML version deleted]] ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html