0

我有一列数据,该列名为(Daily_Mileage)。我有 15 种不同类型的每日里程和 250 行。我想为每天 15 英里的每一个单独计算。我在 SAS 中使用 PROC SQL,它不喜欢交叉连接命令。我不太确定我应该做什么,但这就是我开始的:

程序 SQL;
选择 A、B
From (select count(Daily_Mileage) as A from Work.full where Daily_Mileage = 'Farm Utility Vehicle (Class 7)') a
交叉连接(从 Work.full 中选择 count(Daily_Mileage) 作为 B,其中 Daily_Mileage = 'Farm Truck Light (Class 35)') b);
退出;
4

3 回答 3

2

使用案例语句来定义您的计数,如下所示。

proc sql;
  create table submit as
  select sum(case when Daily_Mileage = 'Farm Utility Vehicle (Class 7)'
                  then 1 else 0 end) as A,
         sum(case when Daily_Mileage = 'Farm Truck Light (Class 35)'
                  then 1 else 0 end) as B
  from Work.full
  ;
quit ;
于 2014-08-21T14:34:51.857 回答
1

你不能只使用一个proc freq吗?

data example ;
  input @1 Daily_Mileages $5. ;
datalines ;
TYPE1
TYPE1
TYPE2
TYPE3
TYPE3
TYPE3
TYPE3
;
run ;

proc freq data = example ;
  table Daily_Mileages ;
run ;

/* Create an output dataset */    
proc freq data = example ;
  table Daily_Mileages /out=f_example ;
run ;
于 2014-08-21T14:59:51.043 回答
0

您可以先创建另一列,然后将该列和 GROUP BY Daily_Mileage 相加。如果我误解了你的问题,请告诉我。

PROC SQL;
   CREATE TABLE tab1 AS
   SELECT Daily_Mileage, 1 AS Count, SUM(Count) AS Sum
   FROM <Whatever table your data is in>
       GROUP BY Daily_Mileage;
QUIT;
于 2013-08-01T14:42:40.320 回答