SAS-群体个体观察
很抱歉,我对SAS的许多功能还不熟悉-我只使用了几个月,主要用于调查数据分析,但现在我正在使用一个数据集,其中包含用于交叉研究的个人级别数据。它的形式是:ID治疗期测量1测量2 我想做的是能够将这些个体按他们的治疗组分组,然后输出一个变量,该变量具有测量值1和测量值2的组平均值,以及另一个变量,该变量具有每组的观察计数 即 我想要的是表格中的数据:SAS-群体个体观察,sas,Sas,很抱歉,我对SAS的许多功能还不熟悉-我只使用了几个月,主要用于调查数据分析,但现在我正在使用一个数据集,其中包含用于交叉研究的个人级别数据。它的形式是:ID治疗期测量1测量2 我想做的是能够将这些个体按他们的治疗组分组,然后输出一个变量,该变量具有测量值1和测量值2的组平均值,以及另一个变量,该变量具有每组的观察计数 即 我想要的是表格中的数据: group a = where trt=1 & per=1 group b = where trt=2 & per=2 group
group a = where trt=1 & per=1
group b = where trt=2 & per=2
group c = where trt=2 & per=1
group d = where trt=1 & per=2
trtgrp avg_m1 avg_m2 n
A 102 76 2
B ... ... ...
C
D
感谢您的帮助。/p>/创建示例数据集/
/使用proc summary
汇总trt
和per
/
类
var
平均值
,因此您必须编写平均值
作为所需的统计数据/创建示例数据集/ /使用
proc summary
汇总trt
和per
/
类
var
平均值
,因此您必须编写平均值
作为所需的统计数据另一种方法使用
PROC-SQL
,优点是它使用了简单的英语语法,因此问题中的组概念在语法中得到了维护:
PROC SQL;
CREATE TABLE final AS
SELECT
trt,
per,
avg(m1) AS avg_m1,
avg(m2) AS avg_m2,
count(*) AS n
FROM
test
GROUP BY trt, per;
QUIT;
您甚至可以像您在问题中所做的那样,通过应用条件CASE
逻辑来添加自己的组标题:
PROC SQL;
CREATE TABLE final AS
SELECT
CASE
WHEN trt=1 AND per=1 THEN 'A'
WHEN trt=2 AND per=2 THEN 'B'
WHEN trt=2 AND per=1 THEN 'C'
WHEN trt=1 AND per=2 THEN 'D'
END AS group
avg(m1) AS avg_m1,
avg(m2) AS avg_m2,
count(*) AS n
FROM
test
GROUP BY group;
QUIT;
COUNT(*)
只计算组中找到的行数。AVG函数计算给定列的平均值
在每个示例中,您都可以将GROUP BY
子句中显式命名的列替换为表示SELECT
子句中列位置的数字
GROUP BY 1,2
但是,请注意此方法,因为稍后向
SELECT
子句添加列可能会导致问题。替代方法使用PROC-SQL
,其优点是它使用纯英语语法,因此问题中的组概念在语法中保持不变:
PROC SQL;
CREATE TABLE final AS
SELECT
trt,
per,
avg(m1) AS avg_m1,
avg(m2) AS avg_m2,
count(*) AS n
FROM
test
GROUP BY trt, per;
QUIT;
您甚至可以像您在问题中所做的那样,通过应用条件CASE
逻辑来添加自己的组标题:
PROC SQL;
CREATE TABLE final AS
SELECT
CASE
WHEN trt=1 AND per=1 THEN 'A'
WHEN trt=2 AND per=2 THEN 'B'
WHEN trt=2 AND per=1 THEN 'C'
WHEN trt=1 AND per=2 THEN 'D'
END AS group
avg(m1) AS avg_m1,
avg(m2) AS avg_m2,
count(*) AS n
FROM
test
GROUP BY group;
QUIT;
COUNT(*)
只计算组中找到的行数。AVG函数计算给定列的平均值
在每个示例中,您都可以将GROUP BY
子句中显式命名的列替换为表示SELECT
子句中列位置的数字
GROUP BY 1,2
但是,请注意此方法,因为稍后向
SELECT
子句添加列可能会导致问题。非常感谢大家的帮助!这两种方法都有效,但我喜欢procsql方法的简单性。干杯。非常感谢你们的帮助!这两种方法都有效,但我喜欢procsql方法的简单性。干杯