Hello,

You forgot to cc the list.

Here is a solution, I believe the comments explain the several steps.
It's a matter to read in the file, separate the table from the rest, update the 3rd column, assemble the pieces back together and write to file.


# this path depends on the OP's system
path <- "~/Temp"
fl <- list.files(path, pattern = "Air.txt", full.names = TRUE)
# read the file as text
txt <- readLines(fl)

# find lines starting with an asterisk
i <- grep("^\\*", txt)
# keep the other lines
txt_table <- txt[-i]
# find the lines starting or after the first blank line
j <- which(seq_along(txt_table) >= which(txt_table == ""))
# keep the other lines
txt_table <- txt_table[-j]
txt_table <- trimws(txt_table)

df1 <- read.table(text = txt_table)
# multiply 3rd column by 2
df1[[3]] <- 2*df1[[3]]

# format the table's lines to write them back to file
fmt <- "%14.5f %13.5f %13.5f %8.2f %8.2f %8.2f %7s %8s %10s %9s %9d"
new_data <- sprintf(fmt,
                    df1[[1]], df1[[2]], df1[[3]], df1[[4]],
                    df1[[5]], df1[[6]], df1[[7]], df1[[8]],
                    df1[[9]], df1[[10]], df1[[11]])

j <- which(seq_along(txt) >= which(txt == ""))
# assemble the header, the table and the footer
txt_new <- c(txt[i], new_data, txt[j])

# this is not in the question,
# I'm not rewriting the original
fl2 <- file.path(dirname(fl), "Air2.txt")
writeLines(txt_new, fl2)



Hope this helps,

rui Barradas

Às 15:55 de 21/09/2022, javad bayat escreveu:
Dear Rui;
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, 16:46 Rui Barradas, <ruipbarra...@sapo.pt> wrote:

Hello,

The attached file ends with R-Help's end message. This is unrelated to
computer languages, Fortran, R or other.

And there is no such thing as a Fortran format.

Can you please describe the problem you have?

Rui Barradas

Às 07:09 de 21/09/2022, javad bayat escreveu:



______________________________________________
R-help@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.

Reply via email to