Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SAS-统计报告的累积就诊次数_Sql_Sas_Counting_Proc_Cumulative Sum - Fatal编程技术网

Sql SAS-统计报告的累积就诊次数

Sql SAS-统计报告的累积就诊次数,sql,sas,counting,proc,cumulative-sum,Sql,Sas,Counting,Proc,Cumulative Sum,我们有一个问题,人们没有及时提交医院就诊信息。我试图解释一家医院在就诊日期后(平均)多长时间会提交该日期发生的所有就诊信息 试图从当前数据集创建一个表,该数据集有3个相关字段:唯一访问ID、访问日期、创建日期、投诉负责人 可以有多行具有相同的唯一就诊ID,唯一就诊ID是单个患者就诊的唯一标识符。就诊日期是指就诊日期。date_created变量告诉我们行发送给我们的日期 我想在表中创建的列是:就诊后的天数(0-14)和特定日期报告的平均就诊次数 关于第二专栏,我想知道: 如果我将创建日期限制为访

我们有一个问题,人们没有及时提交医院就诊信息。我试图解释一家医院在就诊日期后(平均)多长时间会提交该日期发生的所有就诊信息

试图从当前数据集创建一个表,该数据集有3个相关字段:唯一访问ID、访问日期、创建日期、投诉负责人

可以有多行具有相同的唯一就诊ID,唯一就诊ID是单个患者就诊的唯一标识符。就诊日期是指就诊日期。date_created变量告诉我们行发送给我们的日期

我想在表中创建的列是:就诊后的天数(0-14)和特定日期报告的平均就诊次数

关于第二专栏,我想知道: 如果我将创建日期限制为访问日期后的0天,那么在访问日期发生了多少次访问(带有非空的chief_投诉)

如果我将创建日期限制为访问日期后的0或1天,那么在访问日期发生了多少次访问(带有非空的chief_投诉)

如果我将创建日期限制为访问日期后的0天、1天或2天,那么在该访问日期发生了多少次访问(带有非空的chief_投诉)

等等,直到您在访问日期后1-14天


有什么想法吗?我从这个开始,我知道这是错误的,但不确定如何修复它…

据我所知,您确实希望生成两个表:

  • 所有访问的列表,以及提交/创建之前的天数 每人

  • 所有日期的列表,包括每个日期的访问次数,包括0-14天后提交的访问次数

如果这就是您的意思,那么这个宏应该可以做到这一点
dsn\u in
是原始数据集的名称
dsn\u out\u days
是保存第一个项目符号结果的数据集的名称
dsn\u out\u summary
是保存第二个项目符号结果的数据集的名称

%MACRO do_analysis (dsn_in = , dsn_out_days = , dsn_visits_by_date = );
    %LOCAL i ; 

    DATA &dsn_out_days;
        SET &dsn_in;

        days_after_visit = INTCK ('DAYS', Visit_Date, Date_Created);

        %DO i = 0 %TO 14;
            submitted_up_to_&i._days_after = (days_after_visit <= &i);
            LABEL submitted_up_to_&i._days_after = "Submitted Up To &i Days After" ;
        %END;
    RUN;

    PROC SUMMARY NWAY DATA = &dsn_out_days (
        WHERE = ( NOT MISSING (Chief_Complaint) )
    );
        CLASS Visit_Date;

        OUTPUT 
            OUT = &dsn_visits_by_date (
                DROP = _TYPE_
                RENAME = (_FREQ_ = total_visits) 
            )
            SUM (
                %DO i = 0 %TO 14;
                    submitted_up_to_&i._days_after 
                %END;
            ) =
        ;
    RUN;

    /* Comment out this data step to see how everything works under the hood */
    DATA &dsn_out_days;
        SET &dsn_out_days (
            DROP = 
                %DO i = 0 %TO 14;
                    submitted_up_to_&i._days_after 
                %END;
        );
    RUN;

    DATA &dsn_visits_by_date;
        SET &dsn_visits_by_date ;

        LABEL total_visits = "Total Visits";
    RUN;

    PROC SORT DATA = &dsn_visits_by_date ;
        BY Visit_Date ;
    RUN; 
%MEND;

但是,如果您喜欢无宏的解决方案,我可以编辑。请让我知道。

请澄清,之所以会有多行具有相同的
唯一的\u访问\u ID
是因为多个投诉,对吗?也就是说,具有相同的
唯一访问ID的任何两行也具有相同的
访问日期
和相同的
创建日期
,但是
主诉
的值不同?否——我在这里只包含了4个字段,因为这是仅有的4个相关字段;实际上,我有64个变量,医院可以在任何字段中发送具有不同值的更新,但唯一的访问id将使它们保持一致。也就是说,唯一的访问ID和访问日期将保持不变,但创建日期(发送行的日期)可能会更改,因为某些信息可以在第一天发送,然后在第二天更新。这有意义吗?谢谢!宏对我来说是有意义的,所以它很好;现在下班了,明天再试试这个。非常感谢你!!嗨…我很好奇,它有用吗?如果不行的话,我可以试试其他东西。对不起,很久以前我忘了告诉你这是有效的。非常感谢你!!
submitted_up_to_1_days_after = (days_after_visit <= 1);
submitted_up_to_2_days_after = (days_after_visit <= 2);
submitted_up_to_3_days_after = (days_after_visit <= 3);
. . . .