我有几个脚本用于从我正在进行更新的命令行运行简单的SAS命令。我遇到问题的是proc freq
。它现在写得很好,但我希望能够改变输出的格式。
以下是工作代码:
#!/bin/bash
echo "libname home ''; proc freq data=home.$1; tables $2/ missing list;" > user$USER.sas
nohup sas -memsize 0m -sortsize -0m -autoexec /users/me/sastools/autoexec.sas user$USER.sas
more user$USER.lst
现在,我做了一些更改,允许我更改输出格式。
#!/bin/bash
echo "libname home ''; proc freq data=home.$1; tables $2/ missing out=t outcum noprint; run;
proc print data=t(drop=percent cum_pct) noobs; format count cum_freq comma15.; run;" > user$USER.sas
nohup sas -memsize 0m -sortsize -0m -autoexec /users/me/sastools/autoexec.sas user$USER.sas
more user$USER.lst
如果我只在tables
语句中指定一个变量,则新代码有效,但这种情况很少发生。当我尝试添加多个变量时,它只会返回第一个变量。
以下是一些如何运行的示例:
fr dataset var1*var2
fr 'dataset; where var1 = condition; weight var2;' var4*var5
提前感谢您的帮助。
答案 0 :(得分:1)
此处的问题是list
选项。即使指定了outcum
,#!/bin/bash
echo "libname home ''; proc freq data=home.$1; tables $2/ missing out=t noprint; run;
data t; set t(drop=percent); Cum_Freq + Count; run;
proc print data=t noobs; format count cum_freq comma15.; run;" > user$USER.sas
nohup sas -memsize 0m -sortsize -0m -autoexec /users/me/sastools autoexec.sas user$USER.sas
more user$USER.lst
也仅适用于单向表。解决问题的方法是添加数据步骤来计算任何累积统计数据。
WKInterfaceDevice.current.playHaptic(.success)
我希望这可以帮助任何有类似问题的人。
答案 1 :(得分:0)
我怀疑*
正在被扩展或以其他方式被视为*
字符以外的其他内容。尝试引用该参数,当你通过它时可以避免这个问题。
fr dataset "var1*var2"