【发布时间】:2020-03-30 16:42:15
【问题描述】:
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_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 的 prop_b_gt0 是 0.6667,因为 prsn1 中的三个 b_ 变量中有两个em> 行的值大于 0。
我不确定如何系统地完成此任务。也许有一种方法可以将数组与 proc sql 步骤结合起来?欢迎任何解决方案!
【问题讨论】:
-
为什么命名结构不一致? b_prop_gt0 将更符合现有的 b_dog b_cat b_mouse 变量。另外,您是说有大约 333 个响应主题(狗、猫、老鼠……第 333 个主题)?
-
这也可以 - 如果这更容易,我会修改。是的,有大约 330 个主题。
标签: arrays sas data-cleaning proc-sql