我有一个数据集,其中有两个变量A和B.两者都说100个观察值。数据按升序排序。我需要找到B的平均值,其中平均窗口由A决定。根据A的第一次和最后一次观察,必须运行循环。
对于例如,A的范围是300-340。设A(1)表示A的第一个值。我需要运行一个循环,它将打破A值为A(1)+2即302的时刻。该点是每个不同值可能有多于1个观察值例如,对于A的值300和301,如果有10个观测值,我需要对应的10个观测值的B的平均值。
类似地,我需要从后面运行循环,即340(降序循环)。对于A-5(335)的值,底部可能有30个观测值。对于B的相应30个观测值,我需要平均值。
答案 0 :(得分:0)
使用proc sql实现
PROC SQL;
SELECT A, AVG(B)
FROM SAS-DATASETS
GROUP BY A
ORDER BY A DESC;
RUN;