我现在需要读取一个非均衡的面板数据, 由于是新手,捣腾了好多天了,还是无解,呜呜,大家能不能帮我瞧瞧咋办呀。

我的数据包含: 月度(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