我有一个大约 30,000 行和大约 30 列的数据集,包括:
原始数据如下:
在此输入图像描述原始数据
我想重组数据,“组合”诊断代码和诊断描述,以便每行包含 1 个 SSN 标识符、1 个诊断代码及其各自的诊断代码。 这样,具有多个诊断的 SSN 就会打开单独的行。
这是我想要的表格结构:
在此处输入图像描述转置变量后的数据结构。
由于我使用 SAS EG,因此我使用“转置”任务。分配变量时 SAS EG 给出的选项有:
当我尝试调换 ICD 代码和描述列时,它看起来像这样: 图片来自 SAS EG 转置后的结果
SAS EG 创建 4 个新变量:Column1 - Column4;我意识到这些来自上面的“新列名称”选项,但它在所有 4 列中混合了 ICD 代码和描述。
无论我是否首先尝试“转置”ICD 代码列,同时在步骤 1 中“复制”“描述”列,并在第二步中转置“描述”,它都会继续组合这些列,以便有新创建的 SAS“Column1 - Column4”变量中的代码和描述。
我是否没有使用正确的任务(过程转置)来获得它,以便第一列是 SSN,第二列是 ICD 代码,第三列是相应的 ICD 描述?
感谢您阅读到目前为止!
您不会想使用 EG 任务来进行如此复杂的转置。 您需要为其编写 SAS 代码。 转置任务用于简单的转置。
类似...
data want;
set have;
array code code1-code6;
array desc desc1-desc6;
do i = 1 to dim(code);
code_out = code[i];
desc_out = code[i];
output;
end;
keep ssn code_out desc_out;
run;
实际上并不是很复杂,但比任务支持的更复杂。