SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 489|回复: 2
打印 上一主题 下一主题

求助:由矩阵产生数据集的问题?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-4-22 13:45:09 | 只看该作者

求助:由矩阵产生数据集的问题?

我用下面的代码生成了一个随机数矩阵,然后想计算每一列的均值。在生成矩阵后,我是先把矩阵转成数据集,然后用summary语句计算均值。在矩阵转数据集时,SAS报错,请教高手,错误是在哪?
[code:35mamu9g]27   proc iml;
NOTE: IML Ready
28   reset print;
29   alpha=18;
NOTE: 正在写入 HTML Body(主体)文件: sashtml1.htm
30   beta=3;
31   _wm_=rangam(repeat(0,10,5),18);
32   _dv_=rangam(repeat(0,10,5),3);
33   beta1=_wm_/(_wm_+_dv_);
34   show names;
35   print beta1;
36   quit;
NOTE: Exiting IML.
NOTE: “PROCEDURE IML”所用时间(总处理时间):
      实际时间          1.17 秒
      CPU 时间          0.17 秒


37   run;
38   /*将矩阵转为数据集*/
39   proc iml;
NOTE: IML Ready
40   create one var{y1 y2 y3 y4 y5};
41   append from beta1;
ERROR: Number of columns in beta1 does not match with the number of variables in the data set.

statement : APPEND at line 41 column 1
42   quit;
NOTE: Exiting IML.
NOTE: 数据集 WORK.ONE 有 0 个观测和 5 个变量。
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: “PROCEDURE IML”所用时间(总处理时间):
      实际时间          0.12 秒
      CPU 时间          0.03 秒

[/code:35mamu9g]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-4-23 13:20:59 | 只看该作者

Re: 求助:由矩阵产生数据集的问题?

create one var{y1 y2 y3 y4 y5};
append from {y1 y2 y3 y4 y5};
close one;

调试一下
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-4-25 11:12:25 | 只看该作者

Re: 求助:由矩阵产生数据集的问题?

谢谢!
如果那样写的话,LOG是这样的:
[code:1rxlw4fx]46   proc iml;
NOTE: IML Ready
47   create one var{y1 y2 y3 y4 y5};
48   append from {y1 y2 y3 y4 y5};
                 -
                 22
                 76
ERROR 22-322: 期望: 名称.

ERROR 76-322: 语法错误,语句将被忽略。

49   close one;
NOTE: 数据集 WORK.ONE 有 0 个观测和 5 个变量。
50
51   quit;
NOTE: Exiting IML.
NOTE: “PROCEDURE IML”所用时间(总处理时间):
      实际时间          0.34 秒
      CPU 时间          0.03 秒
[/code:1rxlw4fx]

然后,我加了var,变成:
[code:1rxlw4fx]58   proc iml;
NOTE: IML Ready
59   create one var{y1 y2 y3 y4 y5};
60   append from beta1 var{y1 y2 y3 y4 y5};
WARNING: All data set variables are unvalued. No APPEND done.

statement : APPEND at line 60 column 1
61   close one;
NOTE: 数据集 WORK.ONE 有 0 个观测和 5 个变量。
62
63   quit;
NOTE: Exiting IML.
NOTE: “PROCEDURE IML”所用时间(总处理时间):
      实际时间          0.38 秒
      CPU 时间          0.01 秒

[/code:1rxlw4fx]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 13:40 , Processed in 0.083095 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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