Fortran数据格式中3F7.1的含义
我试图使用HLM7学生版创建一个MDM文件,但由于我没有访问SPSS的权限,所以我尝试使用ASCII输入导入数据。作为这个过程的一部分,我需要输入Fortran风格的数据格式。尽管我可能会尝试,但我无法理解这一步。熟悉Fortran(甚至更好的HLM本身)的人能向我解释一下这是如何工作的吗?这是我目前的理解Fortran数据格式中3F7.1的含义,fortran,format,Fortran,Format,我试图使用HLM7学生版创建一个MDM文件,但由于我没有访问SPSS的权限,所以我尝试使用ASCII输入导入数据。作为这个过程的一部分,我需要输入Fortran风格的数据格式。尽管我可能会尝试,但我无法理解这一步。熟悉Fortran(甚至更好的HLM本身)的人能向我解释一下这是如何工作的吗?这是我目前的理解 From the example EG3.DAT they give (A4,1X,3F7.1) I think A4 signifies that the ID is 4
From the example EG3.DAT they give
(A4,1X,3F7.1)
I think
A4 signifies that the ID is 4 characters long.
1X means skip a space.
F.1 means that it should read 1 decimal places.
我对3F7的含义感到非常困惑
EG3.DAT
2020 380.0 40.3 12.5
2040 502.0 83.1 18.6
2180 777.0 96.6 44.4
下面是帮助文档中的示例
一个类似的问题是。不幸的是,它没有显式地处理F描述符
3F7.1
表示3个浮点数,每个浮点数打印超过7个字符,每个浮点数后面有一个小数点。前导字符是空白的
阅读时根本不需要.1
信息,只需从这7个字符中读取一个浮点数即可
您正确猜测了A4(四个字符的字符串)和1X(一个空白)的含义。在Fortran中,所谓的数据编辑描述符(用于格式化数据的输入或输出)可能具有重复的规范
格式为(A4,1X,3F7.1)
的数据编辑描述符为A4
和F7.1
。只有F7.1
具有重复规范(在F
之前的数字)。这仅仅意味着格式就像描述符重复出现一样:如F7.1、F7.1、F7.1
。对于1
的重复规范,或者没有给出,只有一个外观
那么,问题的形式是
(A4,1X,F7.1,F7.1,F7.1)
此格式包含在问题图像之一中提供的规则中。具体而言,规则2中给出了重复规范的方面以及规则3的相应示例
此外,在Fortran中,重复计数说明符也可以是*
,作为特例:这类似于异常大的重复计数<代码>*(F7.1)类似于F7.1、F7.1、F7.1,…
。我看不到HLM支持这一点的迹象,但如果需要,可能会给出非常大的重复计数
在
1X
中,1
不是重复的规范,而是位置编辑描述符的一个完整且必要的部分。从excel为HLM生成MDM文件的步骤:
-确保所有列中的所有字符对齐
- 选择一列,然后单击鼠标右键并选择“设置单元格格式”
- 然后单击“自定义”并转到“类型”框并输入数字 当然,你需要把所有的东西都排好
- 在word中打开文档并使用“查找和替换”
- 首先将其另存为.txt
- 然后在记事本中打开它并将其另存为.dat
- 用括号()括起代码
- 将条目除以逗号
- ID列需要按从最小到最小的顺序排序 最大的
- 使用#,其中#是ID中的字符数
- 使用X1来 从ID移动到下一列
- 使用F
- F之后是该列所需的字符数-使用F(#=数字)
- 需要有足够的字符空间来提供一个“间隙”空间 每列之间
- 需要有足够的字符空间来容纳小数
- 作为F的一部分,您需要指定小数位数
- 您可以通过在F数后添加一个小数点,然后添加一个 表示所需空间的数字-F##
- 您可以在F前面使用一个数字,以便“重复”它。不 不过这是必要的-#F##
(A4,X1,F4.0,F5.1)
有用链接:
在这个网站上有很多关于Fortran格式的问题。首先尝试搜索真的很好。或者查阅一些文档或教程,注意HLM不是fortran,但有点相关。我对此一无所知,但请注意,在I/o处理方面可能存在差异。在fortran中,几乎总是不使用显式格式进行输入,因为列表定向输入非常强大/灵活。谢谢大家的帮助。经过多次尝试和错误,我终于明白了这一点,没有你的帮助,我不可能做到这一点。如果其他人需要将Excel文档转换为MDM for HLM,我将在答案中公布完整的过程。reading和F7.1有一个缺点-如果输入中不包含基数,它将假定最后一位数字是分数。例如,使用F7.1读取1234567将得到123456.7。但如果你读123.456,你就会得到。(我试着解释P比例因子编辑描述符的额外效果,但我需要再喝一杯或三杯啤酒才能做到这一点。)这是真的,但在这里并不重要。我ussume tje OP没有使用Fortran,只是读取使用该描述符编写的Fortran写入的数据,如上图所示。从其中一张图片中,我甚至得出结论,在Fortran规则支持的子集中,
.d
组件实际上是必需的(大于零)。我不知道,可能我错了,我不知道HLM,MDM也不是SPSS,但我假设OP不是用Fortran编程的。谢谢大家的帮助。伊夫