使用sprintf格式化数据帧数据

Ben*_*Ben 3 r

阅读此问题后,我尝试对数据框执行相同的操作:

x <- c(1,2,3,4)
y <- c(5,6,7,8)
my.df <- data.frame(x, y)
do.call("sprintf", c("%14.7E", my.df))
Run Code Online (Sandbox Code Playgroud)

但这仅适用于第一列:

[1] " 1.0000000E+00" " 2.0000000E+00" " 3.0000000E+00" " 4.0000000E+00"
Run Code Online (Sandbox Code Playgroud)

我想要的是:

 1.0000000E+00 5.0000000E+00
 2.0000000E+00 6.0000000E+00
 3.0000000E+00 7.0000000E+00
 4.0000000E+00 8.0000000E+00
Run Code Online (Sandbox Code Playgroud)

因此,我可以将其写入将由fortran代码读取的文件中。

akr*_*run 5

我们需要遍历各列并分别应​​用 sprintf

my.df[] <- lapply(my.df, sprintf, fmt = "%14.7E")
my.df
#              x              y
#1  1.0000000E+00  5.0000000E+00
#2  2.0000000E+00  6.0000000E+00
#3  3.0000000E+00  7.0000000E+00
#4  4.0000000E+00  8.0000000E+00
Run Code Online (Sandbox Code Playgroud)