Sas正在进行观察

时间:2018-02-23 07:30:53

标签: sql sas sas-studio

我是SAS的新手,但熟悉R,MATLAB和Stata。

我在研究过程中未能找到的一件事是能够在整个数据集中处理个别观察。假设这个数据集是我正在使用的每一步:

Stock     Volume1 Volume2 Volume3
Apple     200     100     101
Amazon    150     1000    1020
Facebook  135     80      85
Google    80      75      80

我将举例说明我的目标。

  1. 取段2和3的音量,我输出一个表:

    Volume (Avg)
    142.5
    
    1. 此外,我想要考虑这些细分中的几列的平均值。

      Stock     Volume1 Volume2 Volume3 Volume Average
      Apple     200     100     101     133.67
      Amazon    150     1000    1020    723.33
      
                                        428.50
      
      Facebook  135     80      85      100
      Google    80      75      80      78.33
      
                                        89.165
      
                                                        258.8325
      
  2. 通常,寻找允许我在数据集中为mean,sum,create tables和任何类型的数据操作等操作符工作的语法。

2 个答案:

答案 0 :(得分:0)

你提出的问题不是很好,所以我会尝试提出一些想法然后我们可以讨论。

您可以向数据集添加行标识符:

data yourdata2;
set yourOriginalData;
rownum = _N_;
run;

然后你可以使用各种方法来计算均值:

proc sql;
create table your_summarydata as
select avg(volume) as vol_mean
from yourdata2
where rownum in (2,3);
quit;

我正在扩展你最初的想法。我不建议使用这种方法进行任何严肃的计算。在现实世界中,我会编制一些分类变量,我想要计算它的方法,然后使用类似的东西:

proc sql;
create table your_summarydata as
select groupvar, avg(volume) as vol_mean
from yourdata2
where 1=1 /* where conditions go here if you want to restrict the input dataset before calculations */
group by groupvar
quit;

答案 1 :(得分:0)

您的问题非常广泛,但以下是一些基本的相关示例:

data have;
input Stock $ Volume1 Volume2 Volume3;
cards;
Apple     200     100     101
Amazon    150     1000    1020
Facebook  135     80      85
Google    80      75      80
;
run;

data row_means;
  set have;
  volume_mean = mean(of volume1-volume3);
run;

proc summary data = have;
  var volume1-volume3;
  output out = column_means mean=;
run;

对于更高度可自定义的输出,听起来好像您可能也对proc reportproc tabulate感兴趣,但使用这些输出的综合指南超出了本网站的范围。