天气和季节本身就是表格,但它们持有的唯一信息是1到4之间的整数。我需要创建一个SQL / SAS查询,该查询基本上通过天气和季节的排列来评估,即{{1} }和weather=1
,season=1,2,3,4
和weather=2
。
我尝试对内联查询执行此操作,但不确定我是否正确。这就是我所拥有的-
season=1,2,3,4
从该查询中获得的数据的最终结果是基本上比较天气和季节对租赁模式的影响。
答案 0 :(得分:0)
答案 1 :(得分:0)
交叉连接将创建排列的结果集。
您可以
在处理具有CLASSDATA
选项的过程时,交叉联接概念经常会发挥作用。
一旦有了排列,就可以在计算分组聚合时加入它。
示例:
proc sql;
create table seasons (season num);
create table weathers (weather num);
insert into seasons
values(1)
values(2)
values(3)
values(4)
;
insert into weathers select season as weather from seasons;
create table want as
select
perm.weather
, perm.season
, mean(casual_renter) as cas_rent_mean
from
(select weather, season from weathers cross join seasons) as perm
left join
have
on
perm.weather = have.weather and
perm.season = have.season
group by
perm.weather, perm.season
答案 2 :(得分:0)
为什么要使用SQL?您可以使用PROC MEANS计算CASUAL_RENTER的平均值。如果要填写结果以便包括所有可能的季节*天气组合,请使用CLASSDATA选项。
proc means data=have nway classdata=classdata;
class season weather;
var casual_renter;
run;
在这种情况下,您可以通过简单的数据步骤轻松制作CLASSDATA数据集。
data classdata;
do season=1 to 4;
do weather=1 to 4;
output;
end;
end;
run;
如果问题更加复杂,并且您需要从源数据集中进行构建,则可以通过简单的SQL查询来完成。因此,如果您具有分别具有变量SEASON和WEATHER的SEASON和WEATHER数据集,那么此代码将起作用。
proc sql;
create classdata as select distinct season,weather from season,weather ;
quit;