SAS中文论坛

标题: 怎样读区间的数据? [打印本页]

作者: shiyiming    时间: 2010-10-15 11:52
标题: 怎样读区间的数据?
我的数据很大,,大概每组有1000个。共有60组。我现在的问题是我想每隔10个读一个数据。例如:n=1,11,21,31,41.... ,我每组只需要100个数据。
不知道要写什么code.请大牛们帮个忙。多谢!
作者: shiyiming    时间: 2010-10-15 12:51
标题: Re: 怎样读区间的数据?
input语句中,用 #n 可以控制每次读入缓冲区里数据行的数目;infile语句中用n=选项控制。如:
输入:
data a;
input id $ / #10;
cards;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
;
run;
proc print;
run;
输出:
Obs      id
1         1
2         11
3         21
4         31
5         41

或者,使用point=也可以:
data a;
do i=0 to 4 by 1;
j=1+i*10;
point=j;
output;
end;
stop;
input id $ ;
cards;
。。。
。。。
。。。
作者: shiyiming    时间: 2010-10-15 13:13
标题: Re: 怎样读区间的数据?
[code:3fl3qzai]data temp;
    do group=1 to 3;
        do no=1 to 10;
            output;
        end;
    end;
run;
data out;
    do _n_=1 by 1 until(last.group);
        set temp;
        by group;
        if mod(_n_,3)=1 then output;
    end;
run;[/code:3fl3qzai]
作者: shiyiming    时间: 2010-10-15 22:58
标题: Re: 怎样读区间的数据?
非常感谢! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者: shiyiming    时间: 2010-10-16 17:13
标题: Re: 怎样读区间的数据?
[code:1gvekmsv]data out;
    do _n_=1 by 1 until(last&#46;group);
        set temp;
        by group;
        if mod(_n_,3)=1 then output;
    end;
run;[/code:1gvekmsv]

我一直不明白为什么下面的程序是错误的,无法得到结果, 那位牛人知道?

data out;
        set temp;
        by group;
        do _n_=1 by 1 until(last.group);
        if mod(_n_,3)=1 then output;
    end;
run;




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2