p*****o 发帖数: 543 | 1 首先我觉得这个问题特别不好解释清楚。。。
所以我将它简化成一个例子,附件1(tem.jpg)中(第一行只是为了显示POSITION),我
有两个RECORD(实际的DATA有2000多个RECORD),每个RECORD有4个BLOCK(实际DATA有450个BLOCK),每个BLOCK的长度都是20。
那么如果BLOCK是以字母开头的,则POSITION1-4是COURSE CODE,POSITION5-7是COURSE
SCORE,POSITION8-15是COURSE老师的NAME(另外,第一次出现的关于COURSE的BLOCK
就是第一学期的,第二次出现关于 COURSE的BLOCK就是第二学期的。。。)。
如果BLOCK是以数字开头的,则POSITION1-9是奖学金CODE,10-15是奖学金金额(同样,
第一次出现的关于奖学金的BLOCK就是第一学期的,第二次出现关于奖学金的BLOCK就是
第二学期的。。。。)
我想最后读成像附件tem2.jpg这样的格式(可以有MISSING VALUE)(另外,S1值得是
SEMESTER1,省略号是因为真是的数据中,有15个SEMST |
p*****o 发帖数: 543 | |
A*******s 发帖数: 3942 | 3 你的意思是不是这样:
把所有block读下来以后分为两类,课程信息和奖学金信息。然后头15个课程信息和头
15个奖学金信息写为第一行,接着的15个课程信息和15个奖学金信息写为第二行... |
p*****o 发帖数: 543 | 4 大概是这个意思。
但是每一行不一定是有15个课程信息,15个奖学金信息,但是最多15个。(本来就在第
一行的信息,就留在第一行;第二行的就在第二行)
【在 A*******s 的大作中提到】 : 你的意思是不是这样: : 把所有block读下来以后分为两类,课程信息和奖学金信息。然后头15个课程信息和头 : 15个奖学金信息写为第一行,接着的15个课程信息和15个奖学金信息写为第二行...
|
A*******s 发帖数: 3942 | 5 你没给sample data(你的sample data和output不match),我也不大清楚应该怎么做。
不过我觉得大体逻辑是先把整个block当一个character string读进去
用substr function看第一个字符是啥,再用scan或者substr把变量提取出来
我还是没弄明白的是,到底什么数据应该写到第一行的学期1到学期15中去,
什么数据应该写到第二行的学期1到学期15中...
【在 p*****o 的大作中提到】 : 大概是这个意思。 : 但是每一行不一定是有15个课程信息,15个奖学金信息,但是最多15个。(本来就在第 : 一行的信息,就留在第一行;第二行的就在第二行)
|
p*****o 发帖数: 543 | 6 谢谢你。
其实你已经给我了提示了,在刚才那个%EVAL的帖子里。我已经差不多搞定了。谢谢!
另外,我的SAMPLE DATA跟OUTPUT是MATCH的吧。。。。
做。
【在 A*******s 的大作中提到】 : 你没给sample data(你的sample data和output不match),我也不大清楚应该怎么做。 : 不过我觉得大体逻辑是先把整个block当一个character string读进去 : 用substr function看第一个字符是啥,再用scan或者substr把变量提取出来 : 我还是没弄明白的是,到底什么数据应该写到第一行的学期1到学期15中去, : 什么数据应该写到第二行的学期1到学期15中...
|
p*****o 发帖数: 543 | 7 BTW,其实原本的每一行就是一个学生大学几年的RECORD。所以原本第一行的数据,还
是在第一行,第二行的,还是第二行。
而且不一定每个学生都有15个SEMESTER的,所以可以出现某些SEMESTER是MISSING
VALUE的.
不过你说的对,我现在就是先整个BLOCK读进去,再分开来。。。其实一直有想法怎么
读,就是SAS技巧不够。。。比如如何在INPUT时用循环语句。你刚帮我解决了。谢谢
做。
【在 A*******s 的大作中提到】 : 你没给sample data(你的sample data和output不match),我也不大清楚应该怎么做。 : 不过我觉得大体逻辑是先把整个block当一个character string读进去 : 用substr function看第一个字符是啥,再用scan或者substr把变量提取出来 : 我还是没弄明白的是,到底什么数据应该写到第一行的学期1到学期15中去, : 什么数据应该写到第二行的学期1到学期15中...
|
A*******s 发帖数: 3942 | 8 呵呵,可能是我搞不明白所以觉得不match吧
【在 p*****o 的大作中提到】 : 谢谢你。 : 其实你已经给我了提示了,在刚才那个%EVAL的帖子里。我已经差不多搞定了。谢谢! : 另外,我的SAMPLE DATA跟OUTPUT是MATCH的吧。。。。 : : 做。
|
A*******s 发帖数: 3942 | 9 我又看了一下你的那个macro,其实不需要用macro的,用array就行
【在 p*****o 的大作中提到】 : BTW,其实原本的每一行就是一个学生大学几年的RECORD。所以原本第一行的数据,还 : 是在第一行,第二行的,还是第二行。 : 而且不一定每个学生都有15个SEMESTER的,所以可以出现某些SEMESTER是MISSING : VALUE的. : 不过你说的对,我现在就是先整个BLOCK读进去,再分开来。。。其实一直有想法怎么 : 读,就是SAS技巧不够。。。比如如何在INPUT时用循环语句。你刚帮我解决了。谢谢 : : 做。
|