全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4258 5
2010-09-01
比如现在我有一个数据集dmn28:
data
dmn28;
input x1 x2 x3 x4 x5 y1 freq1;
cards;
0.00085 0.92959 3.44728 1.36622 4.87658 -2.67342 1
0.40093 1.54910 0.00831 4.57719 3.08644 0.60060 2
0.23268 2.52035 4.78002 0.18064 2.22707 1.24736 3
2.41032 2.25386 0.11078 0.63169 2.34059 8.80857 2
1.70273 2.42427 2.21396 2.57922 0.04506 8.37544 1
;
run;
我现在想按freq1将它展开成如下的数据集dmn28b:
data dmn28b;;
input x1 x2 x3 x4 x5 y1;
cards;
0.00085 0.92959 3.44728 1.36622 4.87658 -2.67342
0.40093 1.54910 0.00831 4.57719 3.08644 0.60060
0.40093 1.54910 0.00831 4.57719 3.08644 0.60060
0.23268 2.52035 4.78002 0.18064 2.22707 1.24736
0.23268 2.52035 4.78002 0.18064 2.22707 1.24736
0.23268 2.52035 4.78002 0.18064 2.22707 1.24736
2.41032 2.25386 0.11078 0.63169 2.34059 8.80857
2.41032 2.25386 0.11078 0.63169 2.34059 8.80857
1.70273 2.42427 2.21396 2.57922 0.04506 8.37544
;
run;

有没有data step或者proc step可以实现呢?
求高手!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-9-1 22:13:07
好呀!我喜欢.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-1 22:14:35
data dmn28;
input x1 x2 x3 x4 x5 y1 freq1;
cards;
0.00085 0.92959 3.44728 1.36622 4.87658 -2.67342 1
0.40093 1.54910 0.00831 4.57719 3.08644 0.60060 2
0.23268 2.52035 4.78002 0.18064 2.22707 1.24736 3
2.41032 2.25386 0.11078 0.63169 2.34059 8.80857 2
1.70273 2.42427 2.21396 2.57922 0.04506 8.37544 1
;
run;
data crackman(drop=i);
set dmn28;
do i=1 to freq1;
output;
end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-1 22:25:44
3# crackman Thanks much!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-2 08:50:05
3# crackman  大侠
为什么没有output 不行呢?不是有PDV自动放到数据集 crackman 中?什么时候PDV不会放到数据集中啊?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-9-2 10:32:47
你这个问题很好啊
其实在DATA STEP中,如果是INPUT这种,每次读入一个观测并输出之后,PDV里面的INPUT指定的变量值重置为缺失值,但是SET里面。因为直接从其他数据集读入观测,当读入新的观测到PDV中,这里有DO LOOP语句,I值根据循环,读入到PDV中,如果没有OUTPUT,那么就是PDV中入得观测加上每次循环结束后的I值,也就是FREQ1值,输出到crackman。但是如果加了OUTPUT,那么就是PDV中读入的观测加上每一步循环的I值,输出到crackman,在循环过程中,如果循环没有结束,那么PDV中的已经读入的观测是默认保留下来,与下一步I组成新观测输出,循环结束,语句有开始回到DATA STEP开始,读入新的SET里面的观测到PDV中,重复循环。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群