楼主: jpj根号2
2607 8

[问答] 请教一个简单SAS程序出错的具体原因 [推广有奖]

  • 0关注
  • 0粉丝

本科生

0%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
2099 点
帖子
22
精华
0
在线时间
96 小时
注册时间
2018-1-19
最后登录
2020-10-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
程序如下:data test;
                       drfyyc=.;
               run;
               data test;
                      set test;
                      if drfyyc=.;
                      xiangmu="空缺值";
                      wenti="治疗期(访视2),导入期服药依从性判定,是否达到80%-120%空缺,请补充。";
                      huida="";
               run;
报错如下:
8962  data test;
8963      set test;
8964      if drfyyc=.;
8965      xiangmu="空缺值";
8966      wenti="治疗期(访视2),导入期服药依从性判定,是否达到80%-120%空缺,请补充。";
ERROR: 值“空缺,请补充。”是无效的 SAS 名。
WARNING: 没有解析宏 空缺,请补充。 的调用。

8967      huida="";
8968  run;

NOTE: 从数据集 WORK.TEST. 读取了 1 个观测
NOTE: 数据集 WORK.TEST 有 1 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.01 秒
      CPU 时间          0.01 秒

是不是因为%的原因?在80%-120%之间加上两个双引号没有报错。就是想知道上面程序错误的具体原因,多谢各位大神

二维码

扫码加我 拉你入群

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

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

关键词:服药依从性 服药依从 具体原因 处理时间 数据集

沙发
gudingji 在职认证  发表于 2019-4-9 12:49:22 |只看作者 |坛友微信交流群
wenti="治疗期(访视2),导入期服药依从性判定,是否达到80%-120%空缺,请补充。";这里改成单引号就好了
wenti=‘治疗期(访视2),导入期服药依从性判定,是否达到80%-120%空缺,请补充。’;
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 20 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2   查看全部评分

使用道具

藤椅
许雪1121 学生认证  发表于 2019-4-9 13:51:08 |只看作者 |坛友微信交流群
SAS中会把在双引号("")中的百分号(%)当作宏来解析
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 20 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 20  学术水平 + 2  热心指数 + 2   查看全部评分

使用道具

板凳
jpj根号2 发表于 2019-4-9 14:31:34 |只看作者 |坛友微信交流群
gudingji 发表于 2019-4-9 12:49
wenti="治疗期(访视2),导入期服药依从性判定,是否达到80%-120%空缺,请补充。";这里改成单引号就好了
...
谢谢,上面的这个问题我知道了。大神能帮我看看下面这个如何修改:
data a263;
      fyyc=0.7;
run;
data a264;
      fyyc=0.9;
run;


%macro gy(an,nr,nr1,nr2,bn);
    data &an.;
             set &an.;
                 xiangmu="逻辑核查";
                 wenti="由导入期(访视1)的本次试验药物发放数量和治疗期(访视2)的回收数量计算所得的导入期服药依从性为&nr.,&nr1.,治疗期(访视2)的导入期服药依从性判定的是否达到"||%nrstr("80%-120%")||"勾选&nr2.,请核实。";
                 huida="";
        run;
        proc sql;
             create table &bn. as
                 select siteid,sszxmsx,xiangmu,wenti,huida from &an.;
        quit;
%mend gy;
%gy(a263,fyyc,不在80%-120%范围内,是,b263)
%gy(a264,fyyc,在80%-120%范围内,否,b264)

使用道具

报纸
jpj根号2 发表于 2019-4-9 14:32:19 |只看作者 |坛友微信交流群
许雪1121 发表于 2019-4-9 13:51
SAS中会把在双引号("")中的百分号(%)当作宏来解析
上面知道了,下面的这个如何修改才能正确,多谢啦:
data a263;
      fyyc=0.7;
run;
data a264;
      fyyc=0.9;
run;


%macro gy(an,nr,nr1,nr2,bn);
    data &an.;
             set &an.;
                 xiangmu="逻辑核查";
                 wenti="由导入期(访视1)的本次试验药物发放数量和治疗期(访视2)的回收数量计算所得的导入期服药依从性为&nr.,&nr1.,治疗期(访视2)的导入期服药依从性判定的是否达到"||%nrstr("80%-120%")||"勾选&nr2.,请核实。";
                 huida="";
        run;
        proc sql;
             create table &bn. as
                 select siteid,sszxmsx,xiangmu,wenti,huida from &an.;
        quit;
%mend gy;
%gy(a263,fyyc,不在80%-120%范围内,是,b263)
%gy(a264,fyyc,在80%-120%范围内,否,b264)

使用道具

地板
许雪1121 学生认证  发表于 2019-4-10 17:20:10 |只看作者 |坛友微信交流群
jpj根号2 发表于 2019-4-9 14:32
上面知道了,下面的这个如何修改才能正确,多谢啦:
data a263;
      fyyc=0.7;
看看这样符不符合你要的:
%macro gy(an,nr,nr1,nr2,bn);
data &an.;
        length wenti $300.;
    set &an.;
    xiangmu="逻辑核查";
    wenti="由导入期(访视1)的本次试验药物发放数量和治疗期(访视2)的回收数量计算所得的导入期服药依从性为&nr.,&nr1.,
治疗期(访视2)的导入期服药依从性判定的是否达到80%-120%,勾选&nr2.,请核实。";
    huida="";
run;
         proc sql;
              create table &bn. as
                  select siteid,sszxmsx,xiangmu,wenti,huida from &an.;
         quit;
%mend gy;
%gy(a263,fyyc,%nrstr(不在80%-120%范围内),是,b263)
%gy(a264,fyyc,%nrstr(在80%-120%范围内),否,b264)

使用道具

7
jpj根号2 发表于 2019-4-15 13:33:17 |只看作者 |坛友微信交流群
许雪1121 发表于 2019-4-10 17:20
看看这样符不符合你要的:
%macro gy(an,nr,nr1,nr2,bn);
data &an.;
多谢啦[em23][em23]

使用道具

8
nightmeal 发表于 2019-4-16 17:21:55 |只看作者 |坛友微信交流群
wenti=compress(),把你那一串填到括号里

使用道具

9
jpj根号2 发表于 2019-4-17 10:43:30 |只看作者 |坛友微信交流群
nightmeal 发表于 2019-4-16 17:21
wenti=compress(),把你那一串填到括号里
多谢啦[em23][em23]

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-7 19:16