我有一个名为coaches_assistants
的SAS数据集,其结构如下。每TeamID
总是只有两条记录。从SAS中的多个记录创建单个记录
TeamID Team_City CoachCode
123 Durham Head_242
123 Durham Assistant_876
124 London Head_876
124 London Assistant_922
125 Bath Head_667
125 Bath Assistant_786
126 Dover Head_544
126 Dover Assistant_978
... ... ....
我想如何处理此要做的是创建一个数据集有一个额外的字段名为AssistantCode
,并使它看起来像:
TeamID Team_City HeadCode AssistantCode
123 Durham 242 876
124 London 876 922
125 Bath 667 786
126 Dover 544 978
... ... ... ...
如果可能的话,我愿意做的这在一个单独的DATA步骤中(尽管我知道我可能首先需要一个PROC SORT步骤)。我知道如何用python或ruby或任何传统的脚本语言来做到这一点,但我不知道如何在SAS中做到这一点。
这样做的最好方法是什么?
感谢您的详细信息。我采用第一种方法,它像一个魅力。我还没有深入研究SAS SQL,所以稍后我会在有机会的时候看看它。 – Clay
在第一个代码示例中,“IF LAST.TeamID”是做什么的? – Clay
在数据步骤处理中使用“BY”语句时,会自动创建特殊变量以协助处理。为语句中列出的每个变量创建两个“点”变量:“FIRST.variable”和“LAST.variable”,它们标识组中obs的相对位置。 '如果LAST.TeamID;'是一个“subsetting-IF”语句,用于每个TeamID只输出一个obs。 – BellevueBob