首页 文章

将字段格式的长度和字符串长度设置为宏中的行长度

提问于
浏览
0

我已经构建了一些宏代码,它将字段的给定行中的值传递给宏变量,然后将其用作字符串的一部分,从网站下载CSV文件 . 我尝试将此字段设置为默认长度$ 8 . 在'CALL SYMPUT'语句中 .

这不起作用,因为大多数(但不是全部)字符串长度为4.当在日志中运行代码时,您可以看到提交到网站的URL中的尾随空格和代码翻倒 .

当我尝试使用'CALL SYMPUT'长度为4美元时 . 它适用于四个字符长的字符串 .

除了一些字符串是六个字符长中的一个,两个,三个,五个之外,这一切都会好起来的 . 我尝试以%let mynewvar =%trim(&myoldvar . );'的方式使用'%TRIM'函数但它导致相同的错误,其中URL中提交的宏变量具有尾随空格...

...我究竟做错了什么?

谢谢

3 回答

  • 0

    如果您正在使用数据步骤中的CALL SYMPUT(),请尝试使用STRIP()函数删除空白 .

    data _null_;
    x = "abcd    ";
    call symput("x",strip(x));
    run;
    
    %put X is __&x.__;
    

    返回:

    3735   %put X is __&x.__;
    X is __abcd__
    
  • 0

    您可以尝试使用CALL SYMPUTX左对齐并修剪尾随空白 .

    如果我们能看到一些示例代码,那么帮助您会更容易 .

  • 0

相关问题