我有以下SAS程序錯誤。在SAS宏中調用函數
proc sql
create table sigmav_n as
select std(V) as sigmav_new from bb
quit
...
sysfunc(abs(-sigmac_new))<0.01
這裏V是表bb中的一個列名。並且該程序引發的錯誤如下,
論證我的功能由%SYSFUNC或%QSYSFUNC宏 函數引用的ABS是不是一個數字。
任何機構都知道這個根本原因?
我有以下SAS程序錯誤。在SAS宏中調用函數
proc sql
create table sigmav_n as
select std(V) as sigmav_new from bb
quit
...
sysfunc(abs(-sigmac_new))<0.01
這裏V是表bb中的一個列名。並且該程序引發的錯誤如下,
論證我的功能由%SYSFUNC或%QSYSFUNC宏 函數引用的ABS是不是一個數字。
任何機構都知道這個根本原因?
試試這個:
proc sql
select std(V) into :sigmav_new from bb
quit
...
%sysfunc(abs(-&sigmav_new.))<0.01
這將採取訴標準偏差,把它變成可能後又在sysfunc命令ABS()中使用的宏變量(數字)。
您可能需要一個let語句或其他事情正在進行,或者您將執行abs(),結果將「浮動」到內存中。
很難說出你想要做什麼而不看到你的代碼更多。
首先談好SUGI紙你爲什麼否定對子級它傳遞給ABS之前的值()?
儘管如此,試試這個:
proc sql ;
select case when (abs(std(v)) <0.01) then 1 else 0 end into :sigmav_new from bb ;
quit ;
不會在宏變量名的拼寫錯誤不是嗎? sigmav_new與sigmac_new?不知道這是否只是在你的轉錄。 – sasfrog