SAS,Python,Excel创建不断更新的函数

2024-04-19 03:59:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常大的数据集。我一直在使用SAS;但是我对使用Python和excel持开放态度(只有excel有很好的细节——我从未在这里编程)。每一个人都有一个识别号,他按时间顺序逐行进行观察。在某些行中,我有一个二进制观察值,分别用1或0表示“成功”或“失败”。我想再添加三列(在包含成功/失败的每一行上),其中包含成功的总数(当它们累积时)和失败的总数(当它们累积时)以及两者之间的比率。这个比例很小;但是,我只是不知道如何做到前两个。任何帮助都将不胜感激。谢谢!你知道吗

作为更新:这里是我的数据集的一个想法:

 ID     Success     Failure    totaSuccess    totalFailure    ratio

1234       -           -          -                -           -
1234       1           0          1                0         1/(1+0)
2345       -           -          -                -           -
2345       0           1          0                1         0/(1+0)
1234       0           1          1                1         1/(1+1)

Tags: 数据idfailure顺序编程时间二进制excel
2条回答

在SAS中,您可以创建一个视图,以便它随着表的更新而更新。不管您使用什么解决方案,重要的是要弄清楚您的表是如何更新的。你知道吗

data have;
do id=1 to 10;
    numobs=ceil(rand('uniform')*5);
    do i=1 to numobs;
        value=rand('bernoulli', 0.3);
        output;
    end;
end;
drop i numobs;
run;

proc sql;
    create view want as
    select id, value, sum(value) as success, count(value)-sum(value) as failure, sum(value)/(count(value)) as ratio
    from have
    group by id;
quit;
PROC SORT DATA = HAVE;
    BY ID;
RUN;

DATA WANT / VIEW = WANT;
    SET HAVE;
    BY ID;

    IF FIRST.ID THEN DO;
        TOTALSUCCES = 0;
        TOTALFAILURE = 0;
    END;

    TOTALSUCCES + SUCCESS;
    TOTALFAILURE + FAILURE;
RUN;

相关问题 更多 >