- * Example generated by -dataex-. For more info, type help dataexclearinput int ID double(a1 a2 a3 a4 a5 a6 a7 a8 a9 a10)18619 7.3 . 7.3 7.3 . . . 6.5 . 6.56965 6 . 6 6 . . 6.8 5.9 . 5.915748 8.5 . . . . . 8.5 7.9 . 7.912472 6.3 . 6.3 6.3 . 5.8 6.8 . . 6.415407 11.9 . 12.4 . . . 13 . . . 6368 6.1 6.2 6.1 5.9 5.9 6.3 6.9 6.2 . 6.17552 5.8 . . . 5.8 6.3 . . . 6.311907 5.6 . . . 5.6 5.2 6 . . 6 8510 12 13.5 12.8 . . . . . . . 5291 6.1 . . . 6 6.5 5.8 6.7 . 6.8 7337 6.1 6.9 6.8 . . . . . . 612570 12.2 . 10.8 . . 12 . . . .12536 8.1 . . . . 8.1 7.4 . . 7.4 3937 8.7 . 8.7 8.7 . 7.6 7.7 . . 7.7 8448 8.8 8.8 8.8 . . . 10.3 . . 10.3 4057 8 7.2 7.2 . . 6.3 . . . 6.311879 7.7 . . . . 7.4 6.9 7.7 8.4 8.5 6219 5.6 . 5.6 5.6 6.4 6.7 7.4 6.5 . 6.5
复制代码[/code][/code]可能描述到不是很清楚,这里举一个例。如第一行数据,共有五个值,就需要求四个差值的绝对值,即|a1-a3|,|a3-a4|,|a8-a4|,|a10-a8|。我自己也尝试了编写了代码,奈何编程小白,能力有限,所以来此求各位大佬帮帮忙。代码如下:
- local n=1local j=2forvalue i=1/9{ while a`i'!=.{ local x=a`i' dis "第一次"`x' local i=`i'+1 if a`i'!=. continue,break } while a`j'!=.{ local y=a`j' dis "第二次"`y' if a`j'!=. continue,break } gen diff`n'=abs(`x'-`y') local j=`j'+1 local n=`n'+1 if `i'>9 continue,break }
复制代码但这个代码有两个问题:1、该代码只能运行第一行数据;2、该代码必须保证a1、a2不缺失才能运行。求跪求各位大佬指导一下