使用SAS EG获取百分比

使用SAS EG获取百分比,sas,Sas,希望这是一个相对容易的问题,有人能够帮助我。我是SAS和编程的新手。我有一个数据集,其中有许多变量,每个变量测量在不同活动中花费的时间,有大约18000个独特的条目。我需要得到每个变量占总时间的百分比。我知道如何做到这一点,但不知道如何让SAS做到这一点。下面的一些变量的截图以及最右边的总数。如果你还需要什么,请告诉我 多姆帕兹和莫莫1644感谢你们提供了这些解决方案。这些都有助于我理解SAS。然而,考虑到你们的两个解决方案都涵盖了逐行执行这项任务,我显然不清楚我到底在努力实现什么。我试图得到每

希望这是一个相对容易的问题,有人能够帮助我。我是SAS和编程的新手。我有一个数据集,其中有许多变量,每个变量测量在不同活动中花费的时间,有大约18000个独特的条目。我需要得到每个变量占总时间的百分比。我知道如何做到这一点,但不知道如何让SAS做到这一点。下面的一些变量的截图以及最右边的总数。如果你还需要什么,请告诉我


多姆帕兹和莫莫1644感谢你们提供了这些解决方案。这些都有助于我理解SAS。然而,考虑到你们的两个解决方案都涵盖了逐行执行这项任务,我显然不清楚我到底在努力实现什么。我试图得到每个变量的一个总数,然后找出这个总数占总数的百分比。如果我“手动”执行此操作,它将是v1_total/total total*100/1。

假设您要对每行执行此操作,请使用数据步骤更新变量值除以总数

data want;
set have;
var1 = var1 / total;
var2 = var2 / total;
/*repeat as needed*/
run;
用实际变量名替换var1、var2、total

SAS数据步骤对数据集中的每条记录进行操作。它在所有记录中都有一个隐式循环。所以你写下你想要的公式,它在整个表中执行

如果希望百分比有新值,则代码类似:

data want;
set have;
var1_p = var1 / total;
var2_p = var2 / total;
/*repeat as needed*/
run;

在这里,我们不是更新var1中的值,而是创建一个新变量var1\u p来保存百分比。

在《SAS企业指南》中,您可以通过以下方式进行操作:

编写代码 或者使用查询生成器点并单击 选项1:SASCode

选项2:EG查询生成器

右键单击源表并选择查询生成器

单击计算字段为每个变量创建一个新字段

选择advanced expression并为每个变量粘贴选项1中的代码:v1/total

单击“下一步”,并提供列名v2pcnt和格式%10.2

单击finish并对其他变量重复这些步骤,准备就绪后单击RUN,将创建表

data have;
input id $ v1 v2 v3 v4 v5 total;
datalines;
A 1 2 3 4 5 15
B 1 2 3 4 10 20
C 0 0 0 0 15 15
D 1 0 1 0 2 4
;
RUN;
DATA want1;
set have;
v1pcnt=v1/total;
v2pcnt=v2/total;
v3pcnt=v3/total;
v4pcnt=v4/total;
v5pcnt=v5/total;
format v1pcnt percent10.2 v2pcnt percent10.2 v3pcnt percent10.2 v4pcnt percent10.2 v5pcnt percent10.2;
drop v1 v2 v3 v4 v5;
run;