Re: [R] writing to a fixed format (fortran) file

From: jim holtman <jholtman_at_gmail.com>
Date: Sun 28 Aug 2005 - 06:10:10 EST

One way of creating fixed width output is to use 'sprintf' to create the string and write the resulting data out. I used your input and just selected columns 7-11 as an example. You will have to supply whatever field width you want. I create a matrix and null out the row and column names and then write the matrix out without quotes.

HTH
> x.1

   V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13

1   1  1  1 19.5 2.42 0.02 5.81  9.7  0.4 102 4.8 320   4.8
2   2  1  1  0.0 0.00 0.00 0.00  4.7 -4.0 178 5.4 301   0.2
3   3  1  1  8.2 1.64 0.08 6.93  6.9 -3.6 275 2.7  84 -11.1
4   4  1  1  0.0 0.00 0.00 0.00 20.6 -4.8 221 5.6 327 -10.4
5   5  1  1  0.0 0.00 0.00 0.00 11.6  8.2 168 4.3 269   6.8
6   6  1  1  0.0 0.00 0.00 0.00 18.7 16.9 155 5.6 287   8.2
7   7  1  1  0.0 0.00 0.00 0.00  7.0  2.1 195 2.7  22   0.1
8   8  1  1  0.0 0.00 0.00 0.00 17.6  6.5 281 2.0 146   1.5
9   9  1  1 41.2 1.54 0.82 6.96 12.2  7.8 268 5.5 356   4.5
10 10  1  1  0.0 0.00 0.00 0.00 14.6 -1.4 250 3.6 344   6.4
11 11  1  1  0.0 0.00 0.00 0.00 14.5 -3.7 300 0.0   0 -16.9
12 12  1  1  0.0 0.00 0.00 0.00  8.8 -2.6 308 0.0   0   2.9
13 13  1  1  0.0 0.00 0.00 0.00  6.4  1.6 226 3.3 335   3.8
# field widths are 6,6,8,5,7. You also control the number of decimals that appear
> x.2 <- sprintf("%6.2f%6.1f%8.1f%5.0f%7.1f",x.1[,7], x.1[,8], x.1[,9],
+ x.1[,10], x.1[,11])
> x.2 <- as.matrix(x.2) # convert to a character matrix
> dimnames(x.2) <- list(rep('', nrow(x.2)), '') # blank row and column names
> noquote(x.2)
                                 
   5.81   9.7     0.4  102    4.8
   0.00   4.7    -4.0  178    5.4
   6.93   6.9    -3.6  275    2.7
   0.00  20.6    -4.8  221    5.6
   0.00  11.6     8.2  168    4.3
   0.00  18.7    16.9  155    5.6
   0.00   7.0     2.1  195    2.7
   0.00  17.6     6.5  281    2.0
   6.96  12.2     7.8  268    5.5
   0.00  14.6    -1.4  250    3.6
   0.00  14.5    -3.7  300    0.0
   0.00   8.8    -2.6  308    0.0
   0.00   6.4     1.6  226    3.3

>

On 8/27/05, Jean Eid <jeaneid@chass.utoronto.ca> wrote:
> why not write.table with sep="\t"
>
> On Sat, 27 Aug 2005, Duncan Golicher wrote:
>
> > Could anyone help with what should be a simple task? I have data as a
> > fixed format (fortran) table. I have no trouble getting it into R using
> > read.table. Each column is separated by a space, including the first
> > column that begins with a space, and aligned. It reads into R as if
> > separated by tabs. However I want to manipulate two columns of data then
> > write the results out into exactly the same fortran format for use in
> > another program. It should be simple, but I've tried a variety of
> > experiments with print, cat and format, none of which have come close.
> >
> > Here is a sample of the data.
> >
> > 1 1 1 19.5 2.42 0.02 5.81 9.7 0.4 102. 4.8 320. 4.8
> > 2 1 1 0.0 0.00 0.00 0.00 4.7 -4.0 178. 5.4 301. 0.2
> > 3 1 1 8.2 1.64 0.08 6.93 6.9 -3.6 275. 2.7 84. -11.1
> > 4 1 1 0.0 0.00 0.00 0.00 20.6 -4.8 221. 5.6 327. -10.4
> > 5 1 1 0.0 0.00 0.00 0.00 11.6 8.2 168. 4.3 269. 6.8
> > 6 1 1 0.0 0.00 0.00 0.00 18.7 16.9 155. 5.6 287. 8.2
> > 7 1 1 0.0 0.00 0.00 0.00 7.0 2.1 195. 2.7 22. 0.1
> > 8 1 1 0.0 0.00 0.00 0.00 17.6 6.5 281. 2.0 146. 1.5
> > 9 1 1 41.2 1.54 0.82 6.96 12.2 7.8 268. 5.5 356. 4.5
> > 10 1 1 0.0 0.00 0.00 0.00 14.6 -1.4 250. 3.6 344. 6.4
> > 11 1 1 0.0 0.00 0.00 0.00 14.5 -3.7 300. 0.0 0. -16.9
> > 12 1 1 0.0 0.00 0.00 0.00 8.8 -2.6 308. 0.0 0. 2.9
> > 13 1 1 0.0 0.00 0.00 0.00 6.4 1.6 226. 3.3 335. 3.8
> >
> > --
> >
> > Dr Duncan Golicher
> > Ecologia y Sistematica Terrestre
> > Conservación de la Biodiversidad
> > El Colegio de la Frontera Sur
> > San Cristobal de Las Casas,
> > Chiapas, Mexico
> >
> > Email: dgoliche@sclc.ecosur.mx
> >
> > ______________________________________________
> > 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
> >
>
>
>
> ______________________________________________
> 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
Convergys
+1 513 723 2929

What the problem you are trying to solve?

______________________________________________
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
Received on Sun Aug 28 06:28:06 2005

This archive was generated by hypermail 2.1.8 : Sun 23 Oct 2005 - 16:01:07 EST