【发布时间】:2016-10-06 19:36:21
【问题描述】:
我有一个非常大的数据集(1800 万个观测值),我想通过基于一个变量的子集进行转置,并从这些子集中创建 900 个新变量。下面的示例代码和所需的输出格式: 示例数据:
data long1 ;
input famid year faminc ;
cards ;
var1 96 40000
var1 97 40500
var1 98 41000
var2 96 45000
var2 97 45400
var2 98 45800
var3 96 75000
var3 97 76000
var3 98 77000
;
run;
代码:
proc transpose data = data; by famid; var faminc; run;
由于我的数据集的大小,我想知道我是否使用 do 循环来查找每个 var 的第一个和最后一个观察结果,然后迭代子集。有谁知道实现所需输出格式的 sql 或 proc?
【问题讨论】:
-
您的问题是如何使
proc transpose工作,或者如何做比排序和proc 转置更有效的事情? -
我会评论说,使用宽格式可能无济于事,几乎总是进一步处理长格式更容易。
标签: sas subset large-data