楼主: javitianyu
9579 10

打滚求问SAS count/sum命令~~~~ [推广有奖]

  • 0关注
  • 0粉丝

大专生

16%

还不是VIP/贵宾

-

威望
0
论坛币
516 个
通用积分
0
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
244 点
帖子
27
精华
0
在线时间
41 小时
注册时间
2015-2-5
最后登录
2016-6-7

楼主
javitianyu 学生认证  发表于 2015-9-20 04:49:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
程序如下:
DATA SCORE;
RETAIN SUM 0 SCHI 0 SMATH 0 SENG 0;
INPUT CHI MATH ENG;
LABLE CHI='CHINESE' MATH='MATH' ENG='ENGLISH' SCHI='SUM OF CHINESE';
SUM=SUM+1;
CARDS;
80 75 95
70 85 92
85 .  94
93 96 88
.  99 86
;
SCHI=SUM(SCHI,CHI);
SMATH=SUM(SMATH,MATH);
SENG=SUM(SENG,ENG);
LIST;
CARDS;
PROC PRINT;
RUN;
然后跑出来log里面显示SCHI/SMATH/SENG都是not valid所以output里面也根本没有SCHI SMATH SENG这几个量。而且图片里的sum项应该是count才对吧????
啊啊啊阿。。反正所有count和sum相关的我都跑不出结果或者结果很古怪。。不知道哪里有问题啊。。求戳醒~~~

结果如下:
Screen Shot 2015-09-19 at 4.46.40 PM.png
二维码

扫码加我 拉你入群

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

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

关键词:Count Sum Chinese English output count

沙发
teqel 发表于 2015-9-20 08:48:23 来自手机
Cards放在最后面

藤椅
godxh 在职认证  发表于 2015-9-21 12:29:34
DATA SCORE;
RETAIN SUM 0 SCHI 0 SMATH 0 SENG 0;
INPUT CHI MATH ENG;
LABEL CHI='CHINESE' MATH='MATH' ENG='ENGLISH' SCHI='SUM OF CHINESE';
SUM=SUM+1;
SCHI=SUM(SCHI,CHI);
SMATH=SUM(SMATH,MATH);
SENG=SUM(SENG,ENG);
LIST;
CARDS;
80 75 95
70 85 92
85 .  94
93 96 88
.  99 86
;


PROC PRINT;
RUN;
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 30 + 1 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 1  热心指数 + 2   查看全部评分

板凳
javitianyu 学生认证  发表于 2015-9-22 04:16:11
teqel 发表于 2015-9-20 08:48
Cards放在最后面
非常感谢!!虽然我竟然只是把“cards”这词移到了最后。。感觉脑洞太大没补过来。。。
但求问为什么cards不能inputs后面??
之前proc plot/proc means等等都是先有cards再跑程序呀??

报纸
javitianyu 学生认证  发表于 2015-9-22 04:29:17
godxh 发表于 2015-9-21 12:29
DATA SCORE;
RETAIN SUM 0 SCHI 0 SMATH 0 SENG 0;
INPUT CHI MATH ENG;
谢谢谢谢~~~~复制顿时跑出来后都要痛哭流涕了。。。虽然还不知为啥。。我先背起来....
另如果我用下面来跑的话结果好像没问题,但是log会显示除errors:Invalid option name INPUT./Invalid option name CHI./Invalid option name MATH./Invalid option name ENG. 为什么会这样啊?不觉得有问题阿。。因为以下代码是书上的例题。。

DATA SCORE;
RETAIN SUM 0 SCHI 0 SMATH 0 SENG 0;
INFILE '/Users/jessiechen/Documents/SASUniversityEdition/myfolders/SCORE.DAT'
INPUT CHI MATH ENG;
LABEL CHI='CHINESE' MATH='MATH' ENG='ENGLISH' SCHI='SUM OF CHINESE';
SUM=SUM+1;
SCHI=SUM(SCHI,CHI);
SMATH=SUM(SMATH,MATH);
SENG=SUM(SENG,ENG);
PROC PRINT;
RUN;

地板
teqel 发表于 2015-9-22 08:58:01
缺少分号。
而且每个data step最后最好放一个run;

7
javitianyu 学生认证  发表于 2015-9-22 10:33:04
teqel 发表于 2015-9-22 08:58
缺少分号。
而且每个data step最后最好放一个run;
额。。厚皮的可以问一下什么叫一个data step吗?....
我理解的是用一次input(cards/infile)引用一次数据就算一个data step?
所以这整个程序结束才一个run??

8
javitianyu 学生认证  发表于 2015-9-22 10:34:22
teqel 发表于 2015-9-22 08:58
缺少分号。
而且每个data step最后最好放一个run;
额。。厚皮的可以问一下什么叫一个data step吗?....
我理解的是用一次input(cards/infile)引用一次数据就算一个data step?
所以这整个程序结束才一个run??

9
godxh 在职认证  发表于 2015-9-22 11:19:06
javitianyu 发表于 2015-9-22 04:29
谢谢谢谢~~~~复制顿时跑出来后都要痛哭流涕了。。。虽然还不知为啥。。我先背起来....
另如果我用下面来 ...
1, INFILE '/Users/jessiechen/Documents/SASUniversityEdition/myfolders/SCORE.DAT'这一句少了分号;
2, SAS程序包括数据步和过程步两种结构,每一个步是一段相对完整的可以单独运行的程序。数据步用来生成、整理数据和自编程计算,过程步调用SAS已编好的处理过程对数据进行处理。自己用SAS编程序进行计算主要在数据步中进行。
SAS数据步以DATA语句开头,以RUN语句结尾。DATA步中可以使用INPUT、CARDS、INFILE 、SET、MERGE等语句指定数据来源输入数据,也可以用赋值、分支、循环等编程结构直接生成数据或对输入的数据进行修改。
SAS过程步以PROC语句开始,以RUN语句或者QUIT语句结尾。
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
vstalent + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

10
javitianyu 学生认证  发表于 2015-9-24 23:17:17
godxh 发表于 2015-9-22 11:19
1, INFILE '/Users/jessiechen/Documents/SASUniversityEdition/myfolders/SCORE.DAT'这一句少了分号;
...
非常感谢!!回答的太详细了!!太适合我这种转不过弯的。。。。👏👏🙇🙇

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 22:09