【发布时间】:2014-07-21 11:41:45
【问题描述】:
我有一个典型的“面板数据”(用计量经济学术语来说,不是熊猫面板对象)。数据框有一个Date 列和一个ID 列,以及包含某些值的其他列。对于每个日期,我需要根据 V1 对 ID 进行横截面排名,分成 10 个组(十分位),并创建一个名为 rank_col 的新列(取值 1 到 10)来识别排名。然后汇集所有的 rank1, rank2,...rank10 以获得一些统计数据,例如 mean,std。
这可以通过以下代码在 SAS 中轻松完成,它也说明了我的目的:
proc sort data=df;
by Date;
proc rank data=df out=df_ranked groups=10;
var V1;
ranks rank_col;
by Date;
run;
df_ranked 与df 相同,只是它有更多名为rank_col 的列,其中包含每行所属的排名组。
对不起,我没有示例数据来显示结构,需要一个真正的长数据来说明。但 SAS 代码正是我所追求的。
感谢您的帮助!
【问题讨论】: