SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 6551|回复: 10
打印 上一主题 下一主题

SAS如何将统计分析的某个结果作为新的变量

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2013-1-27 23:09:01 | 只看该作者

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]”的数据输出到新的自定义变量,以便后面程序引用它,我应该如何编写语句?
谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2013-1-28 09:56:27 | 只看该作者

Re: SAS如何将统计分析的某个结果作为新的变量

proc sql
into:variable
后面调研宏变量 variable
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2013-1-28 17:22:47 | 只看该作者

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: --> ,能否写的详细些?
谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2013-1-28 21:47:36 | 只看该作者

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
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2013-1-29 23:48:02 | 只看该作者

Re: SAS如何将统计分析的某个结果作为新的变量

Univariate过程有输出结果到数据集的选项,你可以参考sad base中的用法,把结果输出到数据集后,你就可以象处理一般数据集中的观测一样,处理你上一步的分析结果
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2013-1-30 22:27:43 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2013-1-30 22:30:37 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2013-1-30 22:44:34 | 只看该作者

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: -->  

原程序输出的结果如下:
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2013-1-31 20:18:17 | 只看该作者

Re: SAS如何将统计分析的某个结果作为新的变量

帖子没法插入图片啊?!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2013-5-14 15:12:34 | 只看该作者

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的最后一条观测的相应值。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-1-14 06:36 , Processed in 0.272722 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表