楼主: dainiuhuang0
2697 8

[问答] 把proc freq的结果保存为数据集 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

大专生

10%

还不是VIP/贵宾

-

威望
0
论坛币
175 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
273 点
帖子
18
精华
0
在线时间
54 小时
注册时间
2017-4-7
最后登录
2024-12-17

楼主
dainiuhuang0 学生认证  发表于 2021-11-16 00:48:32 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
想请教一下各位大神,我这里有个程序
proc freq data = KBM_2016 ;
tables quxian * age/nopercent norow nocol;(quxian是四川省的183个区县,age是年龄,有1,2,3分别代表三个年龄段)
run;

微信图片_20211116004807.png
结果大概是这样,我想就把这样的结果保存为数据集该怎么办呢,就横向就是区县名称,纵向四个变量:age=1,age=2,age=3以及总和,直接在proc步加out选项格式不对,输出的结果只有age这一个变量。

求各位大神指点指点!!!!!!!!!
二维码

扫码加我 拉你入群

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

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

关键词:结果保存 freq Fre REQ ROC

沙发
HXAI102230 在职认证  发表于 2021-11-16 10:19:21
通过将proc freq步生成的数据集转置实现是否可以?
proc transpose data=a out=b;
  by age;
  id quxian;
  var count;
run;

藤椅
dainiuhuang0 学生认证  发表于 2021-11-16 14:06:13
HXAI102230 发表于 2021-11-16 10:19
通过将proc freq步生成的数据集转置实现是否可以?
proc transpose data=a out=b;
  by age;
不行诶,
ERROR: 数据集 WORK.BB 不是以“升序”顺序排序的。当前 BY 组中“age=3”,下一个 BY 组中“age=1”。
提示这个错误

板凳
HXAI102230 在职认证  发表于 2021-11-16 16:07:09
tables quxian * age
改为
tables age * quxian

报纸
dainiuhuang0 学生认证  发表于 2021-11-16 19:21:19
HXAI102230 发表于 2021-11-16 16:07
tables quxian * age
改为
tables age * quxian
proc freq data = aa ;
tables age * quxian1 /nopercent norow nocol out = bb;
run;
proc transpose data=bb out=b;
  by age;
  id quxian1;
  var count;
run;
还是不对,提示所有的by组错误

地板
HXAI102230 在职认证  发表于 2021-11-16 20:43:28
proc transpose 之前先按by变量(age)排序一下

7
HXAI102230 在职认证  发表于 2021-11-16 21:21:56
可以了吗

8
dainiuhuang0 学生认证  发表于 2021-11-17 12:52:32
HXAI102230 发表于 2021-11-16 21:21
可以了吗
可以了,谢谢大佬,数据集是转置过来了,但是还有一个问题。就是因为之前freq的时候是有一些缺失值,比如我有一个区县,age=2缺失,age=3没有缺失。
但是out的数据集里面就不会显示这个缺失值的观测,转置以后就会错位,变成了age2没有缺失(原来的age3顶到age2去了),然后age3缺失了。
所以有什么办法可以使得proc freq out的数据集保留含有缺失值的观测呢

9
HXAI102230 在职认证  发表于 2021-11-17 15:55:05
我这里没有发现你说的问题,要么把数据发过来吧

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-7 23:30