如何为数据集 1 中包含的每个人找到数据集 2 中具有唯一开始和结束日期的每个人的平均值?

How do I find an average of values in dataset2 for each individual contained in dataset1, who have unique start and end dates?

我希望根据每个人独特的开始日期和结束日期,找到每个人的 valueZ 平均值。 Exposure X 对于每一天,对于每个位置都有很多值,因此(实际上有 23 个位置,每个站点有超过 300 个值和日期):

data dataset2;
input date location valueZ;
datalines;
1/1/2016 1 0.028
1/1/2016 1 0.022
...
2/8/2016 1 0.041
2/8/2016 1 0.044
1/1/2016 2 0.056
...
8/8/2016 2 0.089
1/1/2016 3 0.029
...
11/8/2016 3 0.083
...
1/1/2016 4 0.081
...
12/8/2016 4 0.019
...
10/30/2016 23 0.063
;

数据集 1 中的个体通过位置链接到数据集 2:

data dataset1;
input individual location start_date end_date;
datalines;
1 1 1/1/2016 12/31/2016
2 1 3/12/2016 9/4/2016
3 2 2/5/2016 11/5/2016
4 19 9/30/2016 10/3/2016
5 23 4/12/2016 12/12/2016
...
305 16 1/20/2016 5/15/2016
;

因此,我想根据每个人在 dataset2 中从 start_date 到 end_date 指示的位置得出 valueZ 的平均值。有人可以帮忙吗!

是这样的吗?

proc sql;
  create table want as
  select d1.individual
        ,d1.location
        ,avg(d2.valueZ) as avg_value
  from dataset2 d2
  join dataset1 d1
    on d1.location=d2.location
    and d2.date between d1.start_date and d2.end_date
  group by d1.individual, d1.location
quit;