在SAS

时间:2017-01-28 13:43:59

标签: sas

我创建了这个伪造的例子:

data fakedata;
length name $5;
infile datalines;
input name count percent;
return;
datalines;
Ania 1 17
Basia 1 3
Ola 1 10
Basia 1 52
Basia 1 2
Basia 1 16
;
run;

我想要的结果是:

table

--->总计Basia的计数和百分比

我想总结一下Basia的计数和百分比,因为她只有一次在表中,计数为4和百分比为83.我尝试将名称换成一个数字来在proc sql中进行GROUP BY但是它按顺序改变为(我有这样的错误)。假设它不是那么困难,但我无法找到解决方案。我也试过一些阵列而没有任何成功。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

听起来像<?php $json = '{ "result": "success", "message": [ { "date_insert": "2017-01-28 20:14:51", "date_update": "2017-01-28 20:15:11", "weather": "sunny" } ] }'; $array = json_decode($json,true);//Now you have an array //print_r($array); echo $array['message'][0]['weather'];//outputs sunny ?> 做了你想做的事:

proc sql

您可以添加proc sql; select name, count(*) as cnt, sum(percent) as sum_percent from fakedata group by name; 子句以获取仅一个名称的结果。

答案 1 :(得分:0)

嗯,实际上我得到了答案。

proc summary data=fakedata;
by name;
var count percent;
output out=wynik (drop = _FREQ_ _TYPE_) sum(count)=count sum(percent)=percent;
run;

答案 2 :(得分:0)

您可以返回一步并使用最有可能在一步中生成此输出的PROC FREQ。根据计数,百分比不正确,但我不确定它们的目的是什么,现在它们加起来超过100%。如果您已经有一些摘要,请使用WEIGHT语句来计算计数。

proc freq data=fakedata;
table name;
weight count;
run;