Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的Fortran格式?_R_Format - Fatal编程技术网

R中的Fortran格式?

R中的Fortran格式?,r,format,R,Format,我有一个不同值的列表,需要在Fortran90代码中以特定的方式格式化 F90文件按以下格式读入输入文件: '5E16.8' 表示5列,用科学符号表示,总列宽为16位,小数点后8位 此类输入文件的典型行如下所示: -8.68914773E-03-5.94151619E-03 2.34059840E-04-2.76737270E-03-4.90334584E-03 请注意,负号占用总宽度的额外空间,值的长度固定在小数位数上 在R中,我如何格式化列表/矩阵中的字符串和值 示例矩阵: m <-

我有一个不同值的列表,需要在Fortran90代码中以特定的方式格式化

F90文件按以下格式读入输入文件:

'5E16.8'

表示5列,用科学符号表示,总列宽为16位,小数点后8位

此类输入文件的典型行如下所示:

-8.68914773E-03-5.94151619E-03 2.34059840E-04-2.76737270E-03-4.90334584E-03

请注意,负号占用总宽度的额外空间,值的长度固定在小数位数上

在R中,我如何格式化列表/矩阵中的字符串和值

示例矩阵:

m <- matrix(c(1, 2, 3, -1, -2, -3, 0.5, 3.9, -40, 120))

这似乎非常接近:


(ss不知道,但是你读过
?sprintf
吗?到目前为止,我已经看过cat/sprintf/write了,但是运气不好。问题通常是负号被添加为额外字符,导致间距混乱
sprintf(“%16.8e”,m)
加上一些
gsub()
e+
转换为
e
?(1)您的第三列是
E0
,而不是
E00
,这是有意的吗?(2)对于大小不同的数字,我的示例看起来与您的匹配,除了0.5(呈现为
5.00000…e-01
)在打印
.1e-101
这样的值的方式上存在差异?在Fortran和
E16.8
中,我们期望
0.10000000-100
这样的值,我怀疑这在这个R中不需要付出更多努力就不会发生。有趣的是,我非常确定
sprintf
将进入C库进行定义ion,所以这将是C/Fortran(而不是R/Fortran)的区别…?我在
sprintf
中没有看到任何看起来有用的东西(认为
#
可以做到,但显然不行)。C/Fortran的东西可能会引起更广泛的观众的兴趣(即比R程序员更广泛的人…)谢谢你的帮助Ben,它工作得很好:)我的值进入最大10负指数,所以我不需要担心
  1.00000000E+00  2.00000000E+00  3.00000000E+00 -1.00000000E+00 -2.00000000E+00
 -3.00000000E+00  0.50000000E+00  3.90000000E+00 -4.00000000E+01  1.20000000E+02