【发布时间】:2016-02-16 23:36:23
【问题描述】:
我有以下代码:
ods tagsets.excelxp file = 'G:\CPS\myworkwithoutmissing.xml'
style = printer;
proc tabulate data = final;
Class Year Self_Emp_Inc Self_Emp_Uninc Self_Emp Multi_Job P_Occupation Full_Part_Time_Status;
table Year, P_Occupation*n;
table Year, (P_Occupation*Self_Emp_Inc)*n;
table Year, (Self_Emp_Inc*P_Occupation)*n;
run;
ods tagsets.excelxp close;
当我运行此代码时,我收到以下错误消息:
WARNING: A class, frequency, or weight variable is missing on every observation.
WARNING: A class, frequency, or weight variable is missing on every observation.
WARNING: A class, frequency, or weight variable is missing on every observation.
现在为了规避这个问题,我在类语句的末尾添加了“缺失”选项,这样:
class year self_emp_inc ....... Full_Part_Time_Status/ missing;
这解决了问题,因为它没有给我错误消息并创建表。但是,我的图表现在还计算了缺失值的数量,这是我不想要的。例如,我的变量 self_emp_inc 的值为 1 和 .(表示缺失)。现在,当我使用缺失选项运行代码时,我也得到了所有缺失值的 P_Occupation 计数,但我只想要 self_emp_Inc 的值为 1 时的计数。我怎样才能完成该任务?
【问题讨论】:
-
我不能尝试这个,所以我现在会发表评论。您可以有多个 CLASS 语句,并且只缺少感兴趣的值。您还可以使用 WHERE 语句来限制您的分析。
-
我实际上只使用了“缺失”选项来查看是否可以解决问题。我虽然默认情况下 proc tabulate 会忽略缺失值,但在这种情况下它似乎是一个问题。不知道为什么。我实际上想忽略所有情况和所有变量中的缺失值。
-
Proc tabulate 按列表排除案例。列出的任何具有缺失值的变量都会导致观察结果被排除在所有分析之外。
-
那该怎么办呢?我应该为每个变量写一个单独的类语句吗?
-
为每个表语句尝试一个 proc 表格,将变量限制在必要的最小值。不过,我只是在猜测——您应该发布复制您的问题的示例数据。