楼主: dankdark
10552 14

请教proc contents 问题能自动生成分析报表, 谢谢 [推广有奖]

  • 0关注
  • 1粉丝

已卖:180份资源

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
10.3516
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
1883 点
帖子
110
精华
0
在线时间
135 小时
注册时间
2005-6-23
最后登录
2024-3-30

楼主
dankdark 发表于 2010-5-25 12:04:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教
现在给你一个data set, data set 里有一些character variables and numerical variables,  怎么能自动生成 一个按照character variables分类,并且对numerical variables, 进行统计分析比如n,mean, sdt, min, max, 的报表
我想到的是先用proc contents,再用proc univariate 或proc means 但没有实现。
二维码

扫码加我 拉你入群

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

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

关键词:contents Content 自动生成 ROC NTS character contents 统计

沙发
zhymqy 发表于 2010-5-25 13:01:18
suppose response is a charater variable,others are numerical variables.
proc tabulate data=acqmod.Customer ;
class respond ;
var START_MONTHS NITV_AVG_TICKETS AVG_PT_CUST_FIX_FEE ;
table respond='charecter' ,
START_MONTHS * (n='N'*f=7. mean='mean'*f=pctfmt9. STD='STD' min='min' max='max')
NITV_AVG_TICKETS * (n='N'*f=7. mean='mean'*f=pctfmt9. STD='STD' min='min' max='max')
AVG_PT_CUST_FIX_FEE * (n='N'*f=7. mean='mean'*f=pctfmt9.  STD='STD' min='min' max='max')
;
run;

未命名.png (14 KB)

未命名.png

藤椅
dankdark 发表于 2010-5-25 13:35:15
谢谢 zhymqy回复,
但是提前你不知道都有什么variable,需要SAS自已进行判断的。

板凳
soporaeternus 发表于 2010-5-25 14:36:35
  1. proc contents data=sashelp.class out=a;run;quit;

  2. proc sql;
  3.         select NAME into:Var_Lst_Char separated by " " from a where TYPE=2;
  4.         select NAME into:Var_Lst_Num separated by " " from a where TYPE=1;
  5. quit;
  6. %put &Var_Lst_Char;
  7. %put &Var_Lst_Num;
复制代码
在proc contents out=的数据集选项中可以直接剔除ID变量
现在你有了字符变量名串&Var_Lst_Char和数值变量名串&Var_Lst_Num
接下来,便可以为所欲为了......
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
丁ding + 1 + 1 + 1 精彩帖子
醉_清风 + 1 + 1 + 1 学习了

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

Let them be hard, but never unjust

报纸
zhymqy 发表于 2010-5-25 14:37:10
你想的也太自动化了。如果有多个字符变量,你怎么分啊?建议你先看看有哪些字符变量,内容如何。下面代码
可以帮助你显示哪些字符变量:
PROC CONTENTS data=acqmod.Customer
out= acqmod.aa ;
RUN;
proc print data=acqmod.aa ;
var name;
where TYPE=2 ;
run;

地板
soporaeternus 发表于 2010-5-25 14:39:53
看看4楼哈,不知道有没有帮助
如果要按每一个char或者指定的char组合做分类,要在Lst上做点分类循环什么的
楼主慢慢研究哈
Let them be hard, but never unjust

7
dankdark 发表于 2010-5-25 14:43:54
谢谢,学习了

8
醉_清风 发表于 2010-5-25 15:21:24
原来可以用type来限 学习了
从来不需要想起 永远也不会忘记

9
cz851218 发表于 2010-5-25 15:42:37
不错的程序!!

10
jingju11 发表于 2010-5-26 03:13:50
1# dankdark

理论上可以这么做,而不需要知道变量的具体性质。比如

  1. proc freq; tables _character_; run;
  2. proc means; var _numeric_; run;
复制代码
有几点可供参考:1.做分析之前你应该知道要对什么做分析--理解变量的含义; 2. numeric 变量未必合适于求mean--数字变量未必是连续变量。比如,性别可以用1=male 2 = female 表示,但此时求mean没有实际的意义;3. 即使是连续变量,平均数未必合适。比如说偏斜不对称的变量;4.你所要求的表格也许和sas自动生成的有很大差别,所以经进一步的整理往往是必要的。
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
lqwoailuo + 1 + 1 + 1 精彩帖子
crackman + 1 freq+means

总评分: 学术水平 + 1  热心指数 + 2  信用等级 + 1   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 18:52