楼主: ly1231cn
4324 5

[原创博文] 【求助】如何用SAS将数据按frequency展开 [推广有奖]

  • 1关注
  • 1粉丝

已卖:1204份资源

博士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
18053 个
通用积分
1.3600
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
2408 点
帖子
141
精华
0
在线时间
251 小时
注册时间
2008-1-13
最后登录
2025-4-23

楼主
ly1231cn 发表于 2010-9-1 22:06:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如现在我有一个数据集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可以实现呢?
求高手!
二维码

扫码加我 拉你入群

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

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

关键词:Frequency freq Ency Fre REQ frequency 如何

本帖被以下文库推荐

沙发
dongchao-2010 发表于 2010-9-1 22:13:07
好呀!我喜欢.

藤椅
crackman 发表于 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;

板凳
ly1231cn 发表于 2010-9-1 22:25:44
3# crackman Thanks much!

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

地板
crackman 发表于 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中,重复循环。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 22:08