首页 > 解决方案 > 使用来自另一个数据集的信息在 SAS 中创建网格数据

问题描述

我需要使用来自的信息获取统一网格 20x20 的数据集,SASHELP.CARS以便按如下方式获得变量xy

do y = min(weight) to max(weight) by  (min(weight)+max(weight))/20;
    do x =  min(horsepower) to max(horsepower)  by (min(horsepower)+max(horsepower))/20; 
        output;
    end;
end;

Weight并且HorsePower是 的变量SASHELP.CARS。此外,网格数据集必须在每行中再有两列 EnginSizeMean LengthMean具有相同的值,等于mean(EnginSize)mean(Length)SASHELP.CARS(需要所有这些来构建回归模型的依赖图)。

标签: sasgriddatasetdatastep

解决方案


首先计算您需要使用的统计数据。

proc summary data=sashelp.cars ;
  var weight horsepower enginesize length ;
  output out=stats
    min(weight horsepower)=
    max(weight horsepower)=
    mean(enginesize length)=
    / autoname
  ;
run;

然后使用这些值来生成您的“网格”。

data want;
  set stats;
  do y = 1 to 20 ;
    weight= weight_min + (y-1)*(weight_min+weight_max)/20;
    do x =  1 to 20 ;
      horsepower  =  horsepower_min + (x-1)*(horsepower_min+horsepower_max)/20;
      output;
    end;
  end;
run;

推荐阅读