HAVE是SAS数据集,具有1700个观察值和约1,000个变量。除id之外,还有三种“类型”的变量。它们用不同的前缀表示。这是文件的子集:
id a_dog b_dog c_dog a_cat b_cat c_cat a_mouse b_mouse c_mouse ...
prsn1 1 -1 -2 2 2 0 1 4 1
prsn2 -1 -3 4 2 2 -1 0 -1 -1
...
我需要根据变量的类型(即(a _,b _或c_],为每个受访者计算高于,低于或等于零的值的比例>)。解决方案应将这些新变量附加到文件中:
的prop_b_gt0是0.6667,因为prsn1行中的三个b _变量中有两个变量的值大于0。... prop_a_gt0 prop_a_lt0 prop_a_eq0 prop_b_gt0 prop_b_lt0 prop_b_eq0 prop_c_gt0 prop_c_lt0 prop_c_eq0 ... 1.0000 0.0000 0.0000 0.6667 0.3333 0.0000 0.3333 0.3333 0.3333 ... 0.3333 0.3333 0.3333 0.3333 0.6667 0.0000 0.3333 0.6667 0.0000
请注意,prsn1
我不确定如何系统地完成此操作。也许有一种方法可以将数组与proc sql步骤结合起来?欢迎任何解决方案!
HAVE是一个SAS数据集,包含1700个观测值和约1,000个变量。除id之外,还有三种“类型”的变量。它们用不同的前缀表示。这是文件的子集:id ...
使用数组,您将需要遍历数组并计算更大的数字(并可能计算不丢失的数字)。
对于三个以上的数组(按变量名后缀A,B,C分组),宏将有助于确保在复制和粘贴(代码复制)期间不会出现错别字或杂乱的编辑。