问题描述
我在SAS中有一个大型数据集,需要将其从长数据更改为宽数据。
基本上,对每个属性的数据进行排序是对大约10个不同年份的每个属性进行多次观察,并带有大约150个变量。我想这样做,以便每个变量都是不同的年份,并且每个属性都有一个观测值。每个变量都有唯一的名称,我想保留其中的名称。
我所拥有的:
属性 年份 Var1 ... Var150
2010年第1期提案100 ... ABC
2011年1月1日的提案... DEF
。
。
Prop 1 2017 138 ... XYZ
Prop2 ...
我想要什么:
属性 Var1_2010 ... Var1_2017 ... Var150_2010 ... Var150_2017
Prop1 100 ... 138 ... ABC ... XYZ
Prop2 ...
我尝试使用Proc Transpose,但找不到在每个原始变量名称末尾连接年份的方法。
我也尝试过:
proc sort data=hotels;
by propertyID year;
run;
proc transpose data=hotels out=hotels_wide;
by propertyID year;
var _all_;
run;
proc transpose data=hotels_wide delimiter=_ out=hotels_wide_full(drop=_name_);
by propertyID;
var col1;
id _name_ year;
run;
但是最后一个块给我一个错误,告诉我每个propertyID的每个变量多次出现。这样做的缺点还在于会丢失每个变量的格式。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)