【问题标题】:Dividing two rows in SAS在SAS中划分两行
【发布时间】:2019-06-13 10:28:45
【问题描述】:

我想通过划分现有行来创建新列。 表格代码如下:

DATA WORK.dataset;
  INPUT      Case1 Case2  Case3  Kat$;
   datalines;
10 100 1000 A
2 2 2 B
;

我希望我的结果是一个如下所示的数据表:

CaseX1   CaseX2   CaseX3
5        50       500 

所以我希望一列被另一列分开。

【问题讨论】:

  • 到目前为止你尝试过什么?您是否对解决此问题的潜在方法进行过任何研究?

标签: sas divide


【解决方案1】:

一种出路可能是使用 proc transpose 来处理列,然后使用 SQL 来完成以下技巧:

DATA WORK.dataset;
  INPUT      Case1 Case2  Case3  Kat$;
   datalines;
10 100 1000 A
2 2 2 B
;

/*Taking only numeric columns*/
data want_num(keep=_NUMERIC_) want_char(keep=_CHARACTER_);
    set work.dataset;
run;

/*Transposing dataset */
proc transpose data=work.want_num out= work.dataset1(drop=_:);
run;
/*Calculating the division*/
proc sql;
create table work.dataset2 as
select  col1/col2 as Case1X
from work.dataset1;
quit;
/*Transposing back*/
proc transpose data= work.dataset2 out= res(drop=_:) prefix=CaseX;
run;

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2021-10-01
    相关资源
    最近更新 更多