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

时间:2013-11-30 17:19:39

标签: sas

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

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

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

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

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

由于

3 个答案:

答案 0 :(得分: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__

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)