PROC MEANS 的 class 值的 SAS 组合范围
SAS combining range of class values for PROC MEANS
我正在编写脚本class,但我不知道自己在做什么!
对于我的作业,我应该每年打印 min/max/mean/std。我使用的 .csv 文件有一个年份列,年份为
1949.083
1949.167
1949.25
1949.333
1949.417
1949.5
1949.583
1949.667
1949.75
1949.833
1949.917
1950
1950.083
1950.167
依此类推,一直到 1960 年。
假设我使用的是 PROC MEANS,是否有一种方法可以合并这些年,以便我可以为每年打印一组计算 (min/max/mean/std)?正如 1949 年的一组计算(1949-1949.917 的数据值),1950 年的另一组计算(1950-1950.917 的数据值)等。不确定我是否有道理!我到处找了几个小时,我想不通! :(
如果您希望 PROC MEANS 每年计算单独的统计数据,您可以使用 CLASS 语句。使用 CLASS 语句,它将根据格式化值定义组。因此,如果您仅使用格式 4. 和变量 YEAR,那么每个值都将映射到一个简单的 4 位数字值。
proc means data=have min max mean std ;
class year;
format year 4.;
var analysis_var ;
run;
但这会将 1,949.667
之类的值四舍五入为 1950 而不是 1949。如果您想忽略年份的小数部分,您可以使用 INT() 函数。因此,首先创建一个新变量,然后在 CLASS 语句中使用该新变量。
data step1;
set have;
yrnum = int(year);
run;
proc means data=step1 min max mean std ;
class yrnum ;
var analysis_var ;
run;
我正在编写脚本class,但我不知道自己在做什么! 对于我的作业,我应该每年打印 min/max/mean/std。我使用的 .csv 文件有一个年份列,年份为
1949.083
1949.167
1949.25
1949.333
1949.417
1949.5
1949.583
1949.667
1949.75
1949.833
1949.917
1950
1950.083
1950.167
依此类推,一直到 1960 年。 假设我使用的是 PROC MEANS,是否有一种方法可以合并这些年,以便我可以为每年打印一组计算 (min/max/mean/std)?正如 1949 年的一组计算(1949-1949.917 的数据值),1950 年的另一组计算(1950-1950.917 的数据值)等。不确定我是否有道理!我到处找了几个小时,我想不通! :(
如果您希望 PROC MEANS 每年计算单独的统计数据,您可以使用 CLASS 语句。使用 CLASS 语句,它将根据格式化值定义组。因此,如果您仅使用格式 4. 和变量 YEAR,那么每个值都将映射到一个简单的 4 位数字值。
proc means data=have min max mean std ;
class year;
format year 4.;
var analysis_var ;
run;
但这会将 1,949.667
之类的值四舍五入为 1950 而不是 1949。如果您想忽略年份的小数部分,您可以使用 INT() 函数。因此,首先创建一个新变量,然后在 CLASS 语句中使用该新变量。
data step1;
set have;
yrnum = int(year);
run;
proc means data=step1 min max mean std ;
class yrnum ;
var analysis_var ;
run;