SAS中文论坛

标题: SAS如何将统计分析的某个结果作为新的变量 [打印本页]

作者: shiyiming    时间: 2013-1-27 23:09
标题: SAS如何将统计分析的某个结果作为新的变量
请教各位大侠:

我曾用ODS语句将统计分析输出新的数据集,但仍不能将其中某个结果输出为新的变量,本人使用SAS很不熟,较愚笨。
为实现该功能,编了个简单程序如下:
-------------------------------------------------------------------------
data a;
      do unit=1 to 20;    /* 待分组的样本数 */
         output;  
      end;
   run;

data M1;
set a;   
infile 'c:\testyy.txt';  /* 包含编号、体重的纯文本数据  */
input bh tz;  /*编号bh,体重tz */

ods listing;
ods output BasicMeasures = Measures;
ods select BasicMeasures;

proc univariate;
var tz;
run;
quit;
--------------------------------------------------------------------------
输出的结果如下:
The UNIVARIATE Procedure
                                          Variable:  tz

                                   Basic Statistical Measures

                         Location                    Variability

                     Mean     27.82000     Std Deviation            4.82882
                     Median   27.45000     Variance                  23.31747
                     Mode       .               Range                    22.90000
                                                  Interquartile Range      5.95000
--------------------------------------------------------------------------------------------------------
ods语句也能输出新的数据集“Measures”,  包含以上结果.
现在的问题是:假如我想将变量“[color=#FF0000:2xibnuk3]Variance[/color:2xibnuk3]”的数据输出到新的自定义变量,以便后面程序引用它,我应该如何编写语句?
谢谢!
作者: shiyiming    时间: 2013-1-28 09:56
标题: Re: SAS如何将统计分析的某个结果作为新的变量
proc sql
into:variable
后面调研宏变量 variable
作者: shiyiming    时间: 2013-1-28 17:22
标题: Re: SAS如何将统计分析的某个结果作为新的变量
[quote="缘来是你":2s6or2ow]proc sql
into:variable
后面调研宏变量 variable[/quote:2s6or2ow]

不懂 <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: --> ,能否写的详细些?
谢谢!
作者: shiyiming    时间: 2013-1-28 21:47
标题: Re: SAS如何将统计分析的某个结果作为新的变量
具体的用法你其实可以查sas help,我最近也是在学SAS,将我的理解讲一下:

具体的写法是
proc sql noprint;
  select  variance   into:  variable  from  Measures;
quit;

即从你原来的数据集Measures当中选择将变量variance的值赋值给一个新的变量variable,并且这个新的变量是宏变量,你在后面使用的时候只需要调用这个新的宏变量就可以了,宏变量的调用方法是&amp;variable.

还有一种将一个变量的值赋给另外一个新变量可以用语句
data _null_;
  set Measures;
  call symput('variable',variance);
run;
这个也是将变量variance的值赋值给一个新的变量宏variable
作者: shiyiming    时间: 2013-1-29 23:48
标题: Re: SAS如何将统计分析的某个结果作为新的变量
Univariate过程有输出结果到数据集的选项,你可以参考sad base中的用法,把结果输出到数据集后,你就可以象处理一般数据集中的观测一样,处理你上一步的分析结果
作者: shiyiming    时间: 2013-1-30 22:27
标题: Re: SAS如何将统计分析的某个结果作为新的变量
[quote=&quot;qwtrain&quot;:ngh1ao3q]具体的用法你其实可以查sas help,我最近也是在学SAS,将我的理解讲一下:

具体的写法是
proc sql noprint;
  select  variance   into:  variable  from  Measures;
quit;

即从你原来的数据集Measures当中选择将变量variance的值赋值给一个新的变量variable,并且这个新的变量是宏变量,你在后面使用的时候只需要调用这个新的宏变量就可以了,宏变量的调用方法是&amp;variable.
[/quote:ngh1ao3q]

这个语句运行了,不行。 <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
46   select variance into: variable from Measures;
[color=#FF0000:ngh1ao3q]ERROR: The following columns were not found in the contributing tables: variance.[/color:ngh1ao3q]
作者: shiyiming    时间: 2013-1-30 22:30
标题: Re: SAS如何将统计分析的某个结果作为新的变量
[quote=&quot;qwtrain&quot;:drshkws2]具体的用法你其实可以查sas help,我最近也是在学SAS,将我的理解讲一下:

还有一种将一个变量的值赋给另外一个新变量可以用语句
data _null_;
  set Measures;
  call symput('variable',variance);
run;
这个也是将变量variance的值赋值给一个新的变量宏variable[/quote:drshkws2]

这个语句输入后,运行也有错误。 <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
72   data _null_;
73   set Measures;
74   call symput('variable',variance);
75   run;

[color=#FF0000:drshkws2]NOTE: Numeric values have been converted to character values at the places given by:
      (Line):(Column).
      74:24[/color:drshkws2]
作者: shiyiming    时间: 2013-1-30 22:44
标题: Re: SAS如何将统计分析的某个结果作为新的变量
[quote=&quot;MerlinZHOU&quot;:1vxmjluy]Univariate过程有输出结果到数据集的选项,你可以参考sad base中的用法,把结果输出到数据集后,你就可以象处理一般数据集中的观测一样,处理你上一步的分析结果[/quote:1vxmjluy]

原程序已实现输出结果到数据集(Measures),只是我不知道如何将其中某个结果再作为变量输出?  <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: -->  

原程序输出的结果如下:
作者: shiyiming    时间: 2013-1-31 20:18
标题: Re: SAS如何将统计分析的某个结果作为新的变量
帖子没法插入图片啊?!
作者: shiyiming    时间: 2013-5-14 15:12
标题: Re: SAS如何将统计分析的某个结果作为新的变量
[quote=&quot;yy7200&quot;:1rbnh5n4][quote=&quot;MerlinZHOU&quot;:1rbnh5n4]Univariate过程有输出结果到数据集的选项,你可以参考sad base中的用法,把结果输出到数据集后,你就可以象处理一般数据集中的观测一样,处理你上一步的分析结果[/quote:1rbnh5n4]

原程序已实现输出结果到数据集(Measures),只是我不知道如何将其中某个结果再作为变量输出?  <!-- s:shock: --><img src="{SMILIES_PATH}/icon_eek.gif" alt=":shock:" title="Shocked" /><!-- s:shock: -->  

原程序输出的结果如下:[/quote:1rbnh5n4]
应该是数据集(Measures)变量variance的最后一条观测的相应值。
作者: BioSas    时间: 2016-5-20 04:13

ods noresults;
ods listing close;
ods output BasicMeasures = Measures;
proc univariate data=Sashelp.fish;
var Width;
run;

proc sql noprint;
   select count(*) as n format=3.  into :n
   from Sashelp.fish
   ;
   select LocValue into :Mean
   from Measures
   where LocMeasure='Mean'
    ;
   select LocValue format=6.4 into :Median
    from Measures
    where LocMeasure='Median'
    ;
   select LocValue format=5.3 into :Mode
    from Measures
    where LocMeasure='Mode'
    ;
        select VarValue format=6.4 into :Std
    from Measures
    where VarMeasure='Std Deviation'
    ;
quit;

%put NOTE: Fish Sample Size=&n, Mean=&Mean, the Midian=&median, and the Mode=&Mode, STD=&std..;
ods results;
ods listing;





欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2