如何在SAS中使用多列转置数据
嗨,我是SAS的新手,我有个问题。我有包含337行和64列的数据。 看起来是这样的: 我需要这样做: 我试过使用proc转置,但我觉得。如何在SAS中使用多列转置数据,sas,transpose,proc,Sas,Transpose,Proc,嗨,我是SAS的新手,我有个问题。我有包含337行和64列的数据。 看起来是这样的: 我需要这样做: 我试过使用proc转置,但我觉得。 请帮助。您需要按日期转置,然后按国家日期排序,,我假定国家是原始变量的标签 例如: 3个日期和5个变量,易于更改以获得更大的数据 data total_returns(label='Example data'); do date = '01jan2020'd to '03jan2020'd; array RI RI_1-RI_5; do
请帮助。您需要
按日期转置,然后按国家日期排序,,我假定国家是原始变量的标签
例如:
3个日期和5个变量,易于更改以获得更大的数据
data total_returns(label='Example data');
do date = '01jan2020'd to '03jan2020'd;
array RI RI_1-RI_5;
do over ri;
demo_value + 1;
RI = demo_value;
end;
output;
end;
label
RI_1 = 'MSCI Country Biff blah blah blah'
RI_2 = 'MSCI Country Bam blah blah blah'
RI_3 = 'MSCI Country Boom blah blah blah'
RI_4 = 'MSCI Country Zwok blah blah blah'
RI_5 = 'MSCI Country Pow blah blah blah'
;
format date yymmdd10.;
drop demo_value;
run;
proc transpose
data=total_returns
out=stage1 (
drop=_name_
rename= ( _label_=Country
col1 = RI
)
)
;
by date;
var RI_1-RI_5;
label country = ' ';
run;
proc sort data=stage1 out=want;
by country date;
run;
proc print label data=total_returns;
title "Original, across/array layout";
proc print data=want;
title "Transposed and Sorted, categorical/vector layout";
run;
输出:
您需要按日期转置,然后按国家日期排序,我假定国家是原始变量的标签
例如:
3个日期和5个变量,易于更改以获得更大的数据
data total_returns(label='Example data');
do date = '01jan2020'd to '03jan2020'd;
array RI RI_1-RI_5;
do over ri;
demo_value + 1;
RI = demo_value;
end;
output;
end;
label
RI_1 = 'MSCI Country Biff blah blah blah'
RI_2 = 'MSCI Country Bam blah blah blah'
RI_3 = 'MSCI Country Boom blah blah blah'
RI_4 = 'MSCI Country Zwok blah blah blah'
RI_5 = 'MSCI Country Pow blah blah blah'
;
format date yymmdd10.;
drop demo_value;
run;
proc transpose
data=total_returns
out=stage1 (
drop=_name_
rename= ( _label_=Country
col1 = RI
)
)
;
by date;
var RI_1-RI_5;
label country = ' ';
run;
proc sort data=stage1 out=want;
by country date;
run;
proc print label data=total_returns;
title "Original, across/array layout";
proc print data=want;
title "Transposed and Sorted, categorical/vector layout";
run;
输出:
显示您运行的代码并解释它是如何失败的。DATE的值是否唯一标识原始日期集中的行?也就是说,有337个不同的日期值吗?如果没有,请描述什么是唯一标识行的。如果您只是将DATE作为一个id变量,那么您应该期望在输出数据集中使用变量DATE、_NAME_uu和COL1获得337*63个观察值。显示您运行的代码并解释它是如何失败的。DATE的值是否唯一标识原始日期集中的行?也就是说,有337个不同的日期值吗?如果没有,请描述什么是唯一标识行的。如果您只是将DATE作为一个id变量,那么您应该期望在输出数据集中使用变量DATE、_NAME_uu和COL1获得337*63个观察值。