全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1410 2
2014-12-03
data Exce生成结果
                      图1                                                                        图2
图1是data集,图2是期望生成的Excel,求高手指点这种语句该怎么写?
二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-13 21:59:27
sas 输出到excel中的案例,细节自己来吧
http://blog.sina.com.cn/s/blog_534569bc0100gcll.html
二维码

扫码加我 拉你入群

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

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

2015-1-13 22:13:02
TABULATE过程的主要功能是输出统计量表,它是对整个数据集中的数据的汇总。
  TABULATE过程的一般格式为
  PROC TAULATE DATA=数据集名称;
  CLASS 分类变量;
  VAR 分析变量;
  TABLE 页维说明 行维说明 列维说明/选项;
  RUN;
  其中CLASS语句给出分类变量,给变量分类之后可以分别计算它们的统计量,VAR语句指定了对哪个变量进行统计分析,分析变量一般是数值型变量,在TABLE语句中说明表格的结构。
  例1 输出报表反映男女生数学成绩总和,这时分类变量就是SEX 分析变量是MATH表格的结构是性别为行数学总成绩为列
  proc tabulate data=score;
  class sex;
  var math;
  table sex,math;
  run;
  注意在程序中并没有使用SUM来求和,这是因为TABULATE本身就是一个汇总过程。在默认的情况下它将输出分析变量的求和,当然还可以输出分析变量的其他统计量,例如N、NMISS、MEAN、STD、MIN、MAX、RANGE、SUM、USS、CSS、STDERR、CV、T、PRT、VAR、SUMWGT、PCTN、PCTSUM 等
  例3 输出报表反映男女生数学语文成绩的平均值方差
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex,(math chinese)*(mean var);
  run;
  在程序中可以看到对于处于同一个层次的变量,它们之间要用空格分隔开来例如math 和chinese,它们都是需要分析的变量mean 和var它们都是统计量,而对于行维或列维中的不同层次的名称要用*号连接例如math chinese 和mean var 它们同处于列维,但是层次不同应该用*号连接
  例3 使用统计量N 个数和PCTN 百分比计算性别的频数
  proc tabulate data=sasuser.score;
  class sex;
  table sex*(N PCTN);
  run;
  在这个程序中因为性别与两个统计量属于不同的层次,所以应该用*号把它们连接起来。上面的TABULATE 只计算了分类统计量,即分别计算男生女生的统计量,而没有计算总的统计量。如果希望计算的话,可以在SEX后加上一个ALL代表所有的记录。
  例4 输出报表不但包括按照性别分类的数学语文成绩的均值和方差,还包括对所有记录计算的两门功课的均值和方差,程序如下
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex all,(math chinese )*(mean var);
  run;
  在TABULATE过程中可以使用LABEL语句使变量显示标签用KEYLABEL语句,使统计量显示标签
  例5 将上面表格中的名称替换为对应的中文标签
  proc tabulate data=sasuser.score;
  class sex;
  var math chinese;
  table sex all,(math chinese )*(mean var);
  keylabel mean='均值'var='方差'all='总计';
  label sex='性别'math='数学'chinese='语文';
  run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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