主题:FORTRAN 数据读取问题
我现在需要读取一个非均衡的面板数据, 由于是新手,捣腾了好多天了,还是无解,呜呜,大家能不能帮我瞧瞧咋办呀。
我的数据包含: 月度(DATE),企业号码(FIRMNO),产量(PRODUCT),销量(SALES)。因此我的数据ARRAY 包含:
.DATE
.FIRMNO
.PRODUCT
.SALES
时间是从1985年1月到2010年12月。问题是有些企业的开始时间不是85年1月,比如96年3月,而有的结束时间早于10年12月,比如06年5月。有些企业中间有些月份漏报(我用999999.99代替)。
我本打算用崁套的DO WHILE, 外层的DO WHILE 读文件直到最后一列。 内层则读每一个FIRM的值。 但是我发现我无法设置内层循环终止条件。哪位能不能给点具体的意见啊?谢谢!
我的基本程序如下,但是有可能是根本行不通。
OPEN(unit= 18, file='fm_data.dat', STATUS ='OLD', iostat = errcod)
OPEN(unit= 19, file='fmdata1.dat', STATUS='replace', iostat=errcod)
year = 0
DO ! LOOP for firms
READ(18,111, iostat=status) permno(j,i), date(j,i), product(j,i), sales(j,i)
111 FORMAT(2(2X, I8),2(2X, F7.4))
DO !loop for dates of each firm
pro(j,i)=product(j,i)
sal(j,i)=sales(j,i)
? how to stop the loop
END DO
IF(status .ne.0) EXIT ! If approach the end of data, stop
END DO
WRITE(19,114) firmno(j), date(j,k),pro(j,k),sal(j,k)
114 FORMAT(3(1X,I8),2(2X,F7.4))
END
我的数据包含: 月度(DATE),企业号码(FIRMNO),产量(PRODUCT),销量(SALES)。因此我的数据ARRAY 包含:
.DATE
.FIRMNO
.PRODUCT
.SALES
时间是从1985年1月到2010年12月。问题是有些企业的开始时间不是85年1月,比如96年3月,而有的结束时间早于10年12月,比如06年5月。有些企业中间有些月份漏报(我用999999.99代替)。
我本打算用崁套的DO WHILE, 外层的DO WHILE 读文件直到最后一列。 内层则读每一个FIRM的值。 但是我发现我无法设置内层循环终止条件。哪位能不能给点具体的意见啊?谢谢!
我的基本程序如下,但是有可能是根本行不通。
OPEN(unit= 18, file='fm_data.dat', STATUS ='OLD', iostat = errcod)
OPEN(unit= 19, file='fmdata1.dat', STATUS='replace', iostat=errcod)
year = 0
DO ! LOOP for firms
READ(18,111, iostat=status) permno(j,i), date(j,i), product(j,i), sales(j,i)
111 FORMAT(2(2X, I8),2(2X, F7.4))
DO !loop for dates of each firm
pro(j,i)=product(j,i)
sal(j,i)=sales(j,i)
? how to stop the loop
END DO
IF(status .ne.0) EXIT ! If approach the end of data, stop
END DO
WRITE(19,114) firmno(j), date(j,k),pro(j,k),sal(j,k)
114 FORMAT(3(1X,I8),2(2X,F7.4))
END