[R] Write text file in Fortran format

javad bayat j@b@y@t194 @end|ng |rom gm@||@com
Thu Sep 22 12:35:14 CEST 2022


These 2 lines were at the end of the text file, which I have attached but I
had removed them to read the text file in R.
Just like the first 8 line that start with asterisk (*).






On Thu, 22 Sep 2022, 12:21 Rui Barradas, <ruipbarradas using sapo.pt> wrote:

> Hello,
>
> Are those lines at the begining of the file?
>
> Rui Barradas
>
> Às 06:44 de 22/09/2022, javad bayat escreveu:
> > Dear all; Many thanks for your useful comments and codes.
> > I tried both Rui's and Jim's codes.
> > Jim's codes gave an error as below:
> > "Error in substr(inputline, 1, begincol3 - 1) :
> >    object 'inputline' not found"
> > I don't know what's wrong.
> > The Rui's codes worked correctly for the attached file. But I have edited
> > that file and removed 2 last lines from the file because I could not read
> > it into R.
> > These 2 lines were:
> > "
> > ** CONCUNIT ug/m^3
> > ** DEPUNIT g/m^2
> > "
> > When I tried to run the code for my file that has these 2 lines at the
> end,
> > it gave me this error:
> > "
> >> df1 <- read.table(text = txt_table)
> > Error in read.table(text = txt_table) : no lines available in input
> > "
> > The codes before the "df1 <- read.table(text = txt_table)" were run
> > correctly.
> > Sincerely
> >
> >
> >
> > On Thu, Sep 22, 2022 at 6:58 AM javad bayat <j.bayat194 using gmail.com>
> wrote:
> >
> >> Dear all;
> >> I apologise, I didn't know that I have to cc the list.
> >> Thank you Mr Rui for reminding me.
> >> Let me clarify more.
> >> I have no knowledge of the FORTRAN language. The text file that has been
> >> attached is a model's output file and I know that the format is in
> FORTRAN.
> >> I want to write a text file exactly similar to the attached text file
> using
> >> R programming.
> >> The steps below explain my goal:
> >> 1- Read the text file without the first 8 and last 2 rows as a
> dataframe.
> >> Maybe I have removed the last 2 lines, but at the end it had 2 lines
> >> similar the first 8 lines which starts with asterisk.
> >> 2- Double the 3rd column values (or multiply by specific number).
> >> 3- Insert the removed first 8 lines of the original text file as header
> in
> >> the dataframe.
> >> 4- Insert the removed last 2 lines of the original text file at the end
> of
> >> dataframe.
> >> 5- Write the dataframe as a new text file exactly similar to the
> original
> >> text file.
> >>
> >> I have used excel but when I save it as text file, the format changes
> and
> >> is not similar to the attached text file.
> >> I will try all your codes in a few hours, cause I am out of office.
> >> Sincerely yours.
> >>
> >>
> >>
> >> On Thu, 22 Sep 2022, 04:20 Richard O'Keefe, <raoknz using gmail.com> wrote:
> >>
> >>> Oh, so you want to WRITE a file *like* that.
> >>> Use ?sprintf.
> >>> (3(1X,F13.5),3(1X,F8.2),3X,A5,2X,A8,2X,A5,5X,A8,2X,I8)
> >>>
> >>> Fortran sprintf
> >>> 1X      a space
> >>> 3X      3 spaces
> >>> F13.5   %13.5f
> >>> F8.2    %8.2f
> >>> A5      %5s
> >>> A8      %8s
> >>> I8      %8d
> >>> 3(...)  the translation of ... written 3 times
> >>>
> >>> We can simplify 1X,F13.5 to F14.5
> >>> Here's the sprintf() equivalent of the Fortran format,
> >>> except you'll need to change the dots to spaces.
> >>>
> >>> "%14.5f%14.5f%14.5f%9.2f%9.2f%9.2f...%5s..%8s..%5s.....%8s%10d\n
> >>>
> >>> On Thu, 22 Sept 2022 at 04:17, javad bayat <j.bayat194 using gmail.com>
> wrote:
> >>>
> >>>> Dear Rasmus;
> >>>> I have no knowledge of the FORTRAN language. The text file that has
> been
> >>>> attached is a model's output file and I know that the format is in
> >>>> FORTRAN.
> >>>> I want to write a text file exactly similar to the attached text file
> >>>> using
> >>>> R programming.
> >>>> The steps below explain my goal:
> >>>> 1- Read the text file without the first 8 and last 2 rows as a
> dataframe.
> >>>> 2- Double the 3rd column values (or multiply by specific number).
> >>>> 3- Insert the removed first 8 rows of the original text file as
> header in
> >>>> the dataframe.
> >>>> 4- Insert the removed last 2 rows of the original text file at the
> end of
> >>>> dataframe.
> >>>> 5- Write the dataframe as a new text file exactly similar to the
> original
> >>>> text file.
> >>>>
> >>>> I have used excel but when I save it as text file, the format changes
> and
> >>>> is not similar to the attached text file.
> >>>> Sincerely
> >>>>
> >>>> On Wed, 21 Sep 2022, 18:17 Rasmus Liland, <jral using posteo.no> wrote:
> >>>>
> >>>>> Dear Javad,
> >>>>>
> >>>>> Perhaps you were looking to read the
> >>>>> table in Air.txt (is this Fortran
> >>>>> format?) into R?
> >>>>>
> >>>>>          b <- readLines("Air.txt")  # The text MIME attachment
> w/Mailman
> >>>>> footer ...
> >>>>>          b <- b[1:(which(b=="")-1)]  # Remove the odd Mailman footer
> (at
> >>>>> end of df)
> >>>>>          idx <- max(grep("^\\*", b))+1  # Start of df after header
> uline
> >>>>>          header <- tolower(strsplit(gsub("  +", "_", gsub("\\*", "",
> >>>>> b[idx-2])), "_")[[1]])
> >>>>>          b <- read.table(text=b[-(1:idx)], header=F)
> >>>>>          colnames(b) <- header[header!=""]
> >>>>>          b <- b[,sapply(b, \(i) length(unique(i)))>1]  # Remove
> constant
> >>>>> cols
> >>>>>
> >>>>> str(b)
> >>>>>
> >>>>>          'data.frame':   31324 obs. of  6 variables:
> >>>>>           $ x           : num  583500 584000 584500 585000 585500 ...
> >>>>>           $ y           : num  3018700 3018700 3018700 3018700
> 3018700
> >>>> ...
> >>>>>           $ average conc: num  32.8 33.1 33.4 33.5 33.6 ...
> >>>>>           $ zelev       : num  0 0 0 0 0 0 0 0 0 0 ...
> >>>>>           $ zhill       : num  0 0 0 0 0 0 0 0 0 0 ...
> >>>>>           $ date(conc)  : int  16101706 16101706 16101706 16101706
> >>>> 16101706
> >>>>> ...
> >>>>>
> >>>>> Best,
> >>>>> Rasmus
> >>>>>
> >>>>> ______________________________________________
> >>>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >>>>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>>>> PLEASE do read the posting guide
> >>>>> http://www.R-project.org/posting-guide.html
> >>>>> and provide commented, minimal, self-contained, reproducible code.
> >>>>>
> >>>>
> >>>>          [[alternative HTML version deleted]]
> >>>>
> >>>> ______________________________________________
> >>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >>>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>>> PLEASE do read the posting guide
> >>>> http://www.R-project.org/posting-guide.html
> >>>> and provide commented, minimal, self-contained, reproducible code.
> >>>>
> >>>
> >
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list