楼主: fyp198744
14272 10

sas一般怎样求和、百分比的? [推广有奖]

  • 0关注
  • 1粉丝

讲师

2%

还不是VIP/贵宾

-

威望
0
论坛币
135 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
5181 点
帖子
257
精华
0
在线时间
258 小时
注册时间
2016-5-23
最后登录
2019-9-30

楼主
fyp198744 发表于 2016-6-13 16:48:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
原始数据表是(当然有上万行)
jijimamadada
obs1

1

1

0

obs2

1

0

1

obs3

1

1

0

obs4

1

0

1

obs5

1

1

0

obs6

1

1

1

obs7

1

1

1

obs8

1

0

0

obs9

1

1

1

obs10

1

0

0

我需要的结果是
sum(jiji)                        就是jiji的总数
sum(mama)                       就是mama的总数sum(mama)/sum(jiji)%                            就是mama的百分比
sum(dada)                         就是dada的总数sum(dada)/sum(jiji)%                                       就是dada的百分比
用MATLAB或者excel简简单单几行搞定,在sas中我至少写了几百行!
这种应该是基础中的基础吧?sas一般这么搞定的呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:百分比 MATLAB EXCEL atlab matla 百分比

沙发
孤单的我们 发表于 2016-6-13 17:01:11
方法有很多,举个sql的例子
  1. data a;
  2. input jiji mama dada;
  3. cards;
  4. 1 1 0
  5. 1 0 1
  6. 1 1 0
  7. 1 0 1
  8. 1 1 0
  9. 1 1 1
  10. 1 1 1
  11. 1 0 0
  12. 1 1 1
  13. 1 0 0
  14. ;
  15. run;

  16. proc sql noprint;
  17.         create table b as
  18.         select sum(jiji) as a,sum(mama) as b,sum(dada) as c,sum(mama)/sum(jiji) as d format=percent8.1,
  19.         sum(dada)/sum(jiji) as e format=percent8.1 from a;
  20. quit;
复制代码

藤椅
孤单的我们 发表于 2016-6-13 17:08:34
按照需求的结构,可以参考下面代码
  1. proc sql noprint;
  2.         create table b as
  3.         select sum(jiji) as col1,. as col2 format=percent8.1 from a;
  4.         insert into b
  5.         select sum(mama),sum(mama)/sum(jiji) from a;
  6.         insert into b
  7.         select sum(dada),sum(dada)/sum(jiji) from a;
  8. quit;
复制代码

板凳
ifendo 发表于 2016-6-13 22:49:27
如果数据集已经有了,直接用data step 应该也可以,使用sum statement 来求和,然后再求百分比
另外Proc summary 应该也有这个功能吧

报纸
fyp198744 发表于 2016-6-14 09:03:36
ifendo 发表于 2016-6-13 22:49
如果数据集已经有了,直接用data step 应该也可以,使用sum statement 来求和,然后再求百分比
另外Proc s ...
我试过,
data test;
set Imatinib;
bili=sum(jiji);
run;
跑出来,会多一列bibi,然后这一列全是1。

地板
fyp198744 发表于 2016-6-14 09:17:51
孤单的我们 发表于 2016-6-13 17:08
按照需求的结构,可以参考下面代码
你的第一个代码我挺喜欢的,但是第二个代码有点复杂了!我不明白什么叫结构化需求?

7
孤单的我们 发表于 2016-6-14 09:31:35
fyp198744 发表于 2016-6-14 09:17
你的第一个代码我挺喜欢的,但是第二个代码有点复杂了!我不明白什么叫结构化需求?
我是指楼主给的2*3的表格

8
fyp198744 发表于 2016-6-14 09:49:57
孤单的我们 发表于 2016-6-14 09:31
我是指楼主给的2*3的表格
帅气,连输出都帮我想好了,我是越来越喜欢sql了!据说sql是外来的东西不是sas原生的!

9
孤单的我们 发表于 2016-6-14 10:19:40
fyp198744 发表于 2016-6-14 09:49
帅气,连输出都帮我想好了,我是越来越喜欢sql了!据说sql是外来的东西不是sas原生的!
能生成结果就行。SAS强不强大,它毕竟也只是个工具。

10
ifendo 发表于 2016-6-14 12:02:19
fyp198744 发表于 2016-6-14 09:03
我试过,
data test;
set Imatinib;
是sum statement, 不是sum() function

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 17:40