更改 sas 数据中变量值的顺序(按行排序)
changing the order of values in a variable in sas data (row-wise ordering )
我的sasdata输出是这样的
我们可以按特定顺序排列值吗?(更改行的顺序)
即按照"less than 10 lakh, between 10-20 lakh,between 21-30.... above 1 crore"的顺序。
我想更改行顺序。现在,行按升序排列。我们可以手动订购吗?
构建格式并在格式值之后对数据进行排序:
PROC FORMAT;
INVALUE I_range
'Above Rs. 1 Crore' = 6
'Between Rs. 10-20 lakh' = 2
'Between Rs. 21-30 lakh' = 3
'Between Rs. 31-50 Lakh' = 4
'Between Rs. 51 Lakh - Rs. 1 Crore' = 5
'Less than Rs. 10 Lakh' = 1
;
RUN;
DATA Temp_order;
SET HSI_Income_Range;
order_data = INPUT(IncomeRange,I_range.);
RUN;
PROC SORT DATA = Temp_order;
BY order_data;
RUN;
data HSI_Income_Range (Drop= order_data);
set Temp_order;
run;
DATA Out.Temp_order;
SET Out.HSI_income_range;
if income_range="Above Rs. 1 Crore" then dummy_column= 6;
if income_range="Between Rs. 10-20 lakh" then dummy_column= 2;
if income_range="Between Rs. 21-30 lakh" then dummy_column= 3 ;
if income_range="Between Rs. 31-50 Lakh" then dummy_column= 4 ;
if income_range="Between Rs. 51 Lakh – Rs. 1 Crore" then dummy_column= 5;
if income_range="Less than Rs. 10 Lakh" then dummy_column= 1;
RUN;
PROC SORT DATA = Out.Temp_order;
BY dummy_column;
RUN;
data Out.HSI_income_range (Drop=dummy_column);
set out.Temp_order;
run;
我的sasdata输出是这样的
我们可以按特定顺序排列值吗?(更改行的顺序)
即按照"less than 10 lakh, between 10-20 lakh,between 21-30.... above 1 crore"的顺序。
我想更改行顺序。现在,行按升序排列。我们可以手动订购吗?
构建格式并在格式值之后对数据进行排序:
PROC FORMAT;
INVALUE I_range
'Above Rs. 1 Crore' = 6
'Between Rs. 10-20 lakh' = 2
'Between Rs. 21-30 lakh' = 3
'Between Rs. 31-50 Lakh' = 4
'Between Rs. 51 Lakh - Rs. 1 Crore' = 5
'Less than Rs. 10 Lakh' = 1
;
RUN;
DATA Temp_order;
SET HSI_Income_Range;
order_data = INPUT(IncomeRange,I_range.);
RUN;
PROC SORT DATA = Temp_order;
BY order_data;
RUN;
data HSI_Income_Range (Drop= order_data);
set Temp_order;
run;
DATA Out.Temp_order;
SET Out.HSI_income_range;
if income_range="Above Rs. 1 Crore" then dummy_column= 6;
if income_range="Between Rs. 10-20 lakh" then dummy_column= 2;
if income_range="Between Rs. 21-30 lakh" then dummy_column= 3 ;
if income_range="Between Rs. 31-50 Lakh" then dummy_column= 4 ;
if income_range="Between Rs. 51 Lakh – Rs. 1 Crore" then dummy_column= 5;
if income_range="Less than Rs. 10 Lakh" then dummy_column= 1;
RUN;
PROC SORT DATA = Out.Temp_order;
BY dummy_column;
RUN;
data Out.HSI_income_range (Drop=dummy_column);
set out.Temp_order;
run;