问题描述
我正在尝试计算各个平方偏差以根据这些值执行一些计算。
我有以下数据集:
data have;
input testid $ level $ values;
datalines;
HITT1D LC1 0.45
HITT1D LC1 0.49
HITT1D LC1 0.47
HITT1D LC2 0.43
HITT1D LC2 0.39
HITT1D LC2 0.42
HITT1D LC3 0.66
HITT1D LC3 0.63
HITT1D LC3 0.64
HBEF5D LC1 0.45
HBEF5D LC1 0.49
HBEF5D LC1 0.47
HBEF5D LC2 0.43
HBEF5D LC2 0.39
HBEF5D LC2 0.42
HBEF5D LC3 0.66
HBEF5D LC3 0.63
HBEF5D LC3 0.64
;
run;
我需要计算:
-
testid 和 level 的每个组合的所有个体偏差平方的总和
-
以及每个 testid 的所有个体偏差平方的总和
我使用以下方法计算给定 testid 和级别的平均值:
proc means data=have ;
var values;
class testid level;
output out=class_stats mean = /autoname ;
run;
从观察中减去以复制以下示例:
其中“LOT”相当于数据中的level,“subject”相当于testid。
我查看了此处给出的示例: Calculate mean and std of a variable,in a datastep in SAS 但我无法复制它们,因为这些数据只有一个类。
不幸的是,我找不到一种简单的方法来做到这一点,因为我是 R 用户并且我是 SAS 的新手。有没有人对如何在 SAS 中以简单的方式做到这一点有一个切肉刀的想法?
谢谢
解决方法
示例:
proc means data=have css ;
class testid level ;
types testid testid*level ;
var values;
run;
结果:
The MEANS Procedure
Analysis Variable : values
N
testid Obs Corrected SS
-------------------------------
HBEF5D 9 0.0882889
HITT1D 9 0.0882889
-------------------------------
Analysis Variable : values
N
testid level Obs Corrected SS
-------------------------------------------
HBEF5D LC1 3 0.000800000
LC2 3 0.000866667
LC3 3 0.000466667
HITT1D LC1 3 0.000800000
LC2 3 0.000866667
LC3 3 0.000466667
-------------------------------------------