楼主: flyinglancet
6322 3

[原创博文] sas中的数组和宏疑问 [推广有奖]

  • 0关注
  • 1粉丝

硕士生

13%

还不是VIP/贵宾

-

威望
0
论坛币
123 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
2548 点
帖子
57
精华
0
在线时间
187 小时
注册时间
2008-3-12
最后登录
2021-4-9

楼主
flyinglancet 发表于 2012-3-8 16:30:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位大虾:
最近在编程时碰到这样一个问题,请高手帮忙看看:
data work.bb;
do i=1 to 9;
output;
end;
run;
data _null_;
set work.bb;
call symput('nclus',i);
run;
data work.aa;
array ww(*) ww1-ww&nclus;
do i=1 to &nclus;
ww(i)=i;
output;
end;
run;

结果在运行aa数据集时报错如下:
246  data work.aa;
247  array ww(*) ww1-ww&nclus;
                             -
                             200
NOTE: 由宏变量“NCLUS”生成行。
1    ww       1
              -
              22
ERROR: 编号的变量列表中 (ww1-ww) 数字后缀缺失。
WARNING: 定义带 0 个元素的数组。
ERROR 200-322: 该符号不可识别,将被忽略。
ERROR 22-322: 语法错误,期望下列之一: 名称, (, ;, _ALL_, _CHARACTER_, _CHAR_, _NUMERIC_.
248  do i=1 to &nclus;
249  ww(i)=i;
250  output;
251  end;
252  run;
NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.AA 可能不完整。该步停止时,共有 0 个观测和 1 个变量。
WARNING: 数据集 WORK.AA 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒
二维码

扫码加我 拉你入群

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

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

关键词:Character warning numeric output symput null

沙发
yunqingwang 在职认证  发表于 2012-3-8 16:32:50
array ww(*) ww1-ww&nclus;
如下
array ww(*) ww1-ww%left(&nclus);

藤椅
flyinglancet 发表于 2012-3-8 16:35:09
谢谢楼上,以前sas可以跑,最近重装了sas就不可以了,就是感觉挺奇怪的

板凳
bobguy 发表于 2012-3-12 04:04:22
change

call symput('nclus',i);    ----> call symputx('nclus',i);

the call symputx will do left and trim functions automatically while it assigns variable i to nclus.

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 06:55