计算SAS 9.4中多个行和列的中位数

问题描述 投票:0回答:1

我曾尝试搜索多个地点,但尚未找到解决方案。我想知道这里有人可以帮我吗?

[我正在尝试计算SAS 9.4中多个行和列的中间值(带有Q1和Q3),我正在使用的数据集如下所示:

Obs tumor_size_1 tumor_size_2 tumor_size_3 tumor_size_4
1   4            1.5          1            1
2   2.5          2            .            .
3   3            .            .            .
4   4            .            .            .
5   3.5          1            .            .

上下文是针对一个人可能患有1(或更多)肿瘤的医学状况。每行代表1个人。每个人最多可能有4个肿瘤。我想确定整个队列中所有肿瘤的中位大小(而不仅仅是每个人的中位大小)。有办法计算吗?预先谢谢你。

sas median
1个回答
0
投票

数据的转置将产生一个数据结构(形式),该数据结构(形式)适用于使用PROC SUMMARYCLASS语句进行的各种汇总组合下的中位数和四分位数计算。

示例:

data have;
input
patient tumor_size_1 tumor_size_2 tumor_size_3 tumor_size_4; datalines;
1   4            1.5          1            1
2   2.5          2            .            .
3   3            .            .            .
4   4            .            .            .
5   3.5          1            .            .
;

proc transpose data=have out=new_have;
by patient;
var tumor:;
run;

proc summary data=new_have;
  class patient;
  var col1;
  output out=want Q1=Q1 Q3=Q3 MEDIAN=MEDIAN;
run;

结果

patient    _TYPE_    _FREQ_    Q1     Q3     MEDIAN

   .          0        20       1    3.50     2.25
   1          1         4       1    2.75     1.25
   2          1         4       2    2.50     2.25
   3          1         4       3    3.00     3.00
   4          1         4       4    4.00     4.00
   5          1         4       1    3.50     2.25
© www.soinside.com 2019 - 2024. All rights reserved.