l*****o 发帖数: 61 | 1 现在的数据表格是农场,年,地块,变量1,变量2, 变量3...如下格式:
农场 年 地块 变量1 变量2 变量3
1 2004 1 corn y 180
1 2004 2 corn y 176
1 2004 3 soy y 120
1 2004 4 wheat n 190
1 2004 5 soy n 160
1 2005 1 wheat y 138
1 2005 2 corn n 199
1 2005 3 corn y 200
1 2005 4 soy n 170
1 2005 5 soy y 183
1 2006 1 corn n 120
1 2006 1 wheat y 139
1 2006 2 corn n 177
1 2006 3 corn n 182
1 2006 4 corn y 196
1 2006 5 corn y 201
2
2
2
......
我现在需要用SAS把表格重新安排,因为我需要对各个变量进行年之间的比较。新表格
包括变量:农场,地块,变量1_2004, 变量1_2005,变量1_2006, 变量2_2004, 变
量2_2005, 变量2_2006, 变量3_2004,变量3_2005,变量3_2006......
多谢大家指导!!! |
e**h 发帖数: 46 | 2 data final;
merge one(where=(year=2004)
rename=(var1=var1_2004 var2=var2_2004 var3=var3_2004))
one(where=(year=2005)
rename=(var1=var1_2005 var2=var2_2005 var3=var3_2005))
one(where=(year=2006)
rename=(var1=var1_2006 var2=var2_2006 var3=var3_2006));
by 农场 地块;
run;
|
c**d 发帖数: 104 | 3 楼主的数据就是统计的分析格式,不应该变成wide-format。 |
l*****o 发帖数: 61 | 4 用原来那样的格式怎么样给每个变量算年间的差值呢?鞠躬谢! |
j*****g 发帖数: 36 | 5 proc transpose data = dataset0 out=dataset1 name=variable;
by farm year land;
var var1-var3;
drop _label_;
run;
proc sort data = dataset1;
by farm land variable year;
run;
data dataset2(drop = variable year); set dataset1;
newId = catx("_", variable, year);
run;
proc transpose data = dataset1 out =dataset2;
by farm land;
id = newId;
var = col1;
drop _name_ _label_;
run; |