caibirdcnb 发表于 2017-11-11 13:09 
你这个问题很难,分数太少。
1. 将A和B做笛卡尔全连接,之后只保留date在两个日期之间的。
2. 汇总数据。 ...
您好!谢谢您的参与!您的代码产生的结果还不是我想要的结果。我重新描述一下:
现有SAS数据集A,其包含多个变量,有两个变量date_pregnancy和first_month(均为日期型变量),下面为A数据集的格式:
death date_pregnancy first_month
1 2014/1/1 2014/1/28
0 2014/1/1 2014/1/28
1 2014/1/1 2014/1/28
0 2014/1/1 2014/1/28
0 2014/1/1 2014/1/28
1 2014/1/2 2014/1/29
0 2014/1/2 2014/1/29
1 2014/1/2 2014/1/29
0 2014/1/2 2014/1/29
0 2014/1/3 2014/1/30
0 2014/1/3 2014/1/30
0 2014/1/3 2014/1/30
1 2014/1/3 2014/1/30
0 2014/1/3 2014/1/30
1 2014/1/3 2014/1/30
0 2014/1/3 2014/1/30
0 2014/1/3 2014/1/30
现在需要根据数据集A的变量date_pregnancy和first_month的取值情况,对数据集B进行筛选和计算。
1)筛选方面具体是:按照date变量在date_pregnancy和first_month之间的范围(即日期型变量date大于等于date_pregnancy,但date小于等于first_month),选取数据集B的观测;
2)在第1)的基础上,对所选取数据集B的观测进行均值计算,分别计算数据集B中变量mean_RH、mean_pres、mean_temp和max_temp的均值。实际上,此时这些变量所计算产生的均值是根据数据集B中date变量在date_pregnancy和first_month时间范围内mean_RH、mean_pres、mean_temp和max_temp的均值。
数据集B的格式如下:
date mean_RH mean_pres mean_temp max_temp
2014/1/1 68.5 1013.45 10.45 20.85
2014/1/2 80.5 1010.75 12.1 21.8
2014/1/3 80 1010.1 16.45 24.4
2014/1/4 60 1012.55 15.5 20.9
2014/1/5 60 1012.75 12.3 20.5
2014/1/6 78.5 1011.75 12.95 21
2014/1/7 80 1010.3 16.85 21.75
2014/1/8 83.5 1013 15.55 18
2014/1/9 62 1017.85 12.75 15.8
2014/1/10 70 1018.7 12.7 18.1
2014/1/11 77.5 1017.5 14.75 22.45
2014/1/12 77 1018.3 14.05 19.55
2014/1/13 66.5 1019.3 10.35 13.65
2014/1/14 67 1018.65 10.25 16.45
2014/1/15 68 1019.95 9.25 17.8
2014/1/16 75 1018.35 9.6 19.5
2014/1/17 76 1017.5 11.2 20.8
2014/1/18 50.5 1020.9 13.45 21.2
2014/1/19 62.5 1020.25 10.1 18.45
2014/1/20 62.5 1018.55 11.7 20.8
.................................
(数据省略)
.................................
然后,根据以上条件产生的变量mean_RH、mean_pres、mean_temp和max_temp的均值,匹配到数据集A中,形成如下格式:
death date_pregnancy first_month mean_RH_mean mean_pres_mean mean_temp_mean max_temp_mean
1 2014/1/1 2014/1/28 新值 新值 新值 新值
0 2014/1/1 2014/1/28 新值 新值 新值 新值
1 2014/1/1 2014/1/28 新值 新值 新值 新值
0 2014/1/1 2014/1/28 新值 新值 新值 新值
0 2014/1/1 2014/1/28 新值 新值 新值 新值
1 2014/1/2 2014/1/29 新值 新值 新值 新值
0 2014/1/2 2014/1/29 新值 新值 新值 新值
1 2014/1/2 2014/1/29 新值 新值 新值 新值
0 2014/1/2 2014/1/29 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
1 2014/1/3 2014/1/30 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
1 2014/1/3 2014/1/30 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
0 2014/1/3 2014/1/30 新值 新值 新值 新值
期待高手能够帮忙解决一下,非常感谢!