楼主: arlo
2098 6

[问答] 在做一个SAS的练习,有一个数据输入的问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
2836 个
通用积分
1.0800
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
2739 点
帖子
70
精华
0
在线时间
68 小时
注册时间
2006-10-30
最后登录
2016-4-9

楼主
arlo 发表于 2013-12-31 16:43:24 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
用的书是董大钧 SAS统计应用分析2008年版,在练习第4章第6题
后面的数据处理会做,但是输入数据的时候遇到了困难
那个数据好奇怪,不知道怎么输入法,求指点。

question sas input.jpg

因为找不到原来的txt文件,我手动输入的数据: 那个奇怪的地方不知道是不是笔误
210101198707032911zhang lihui98 90.5
210102198709030932ling dong 90.5 94
210101198709032611zhang guang89 90
210101198709030932li xiao don 91.5 94
210103198801083948shang hong 88.5 97
210105198811083927wang ming 80.5 87
210103198801083944sun hong 85.5 77
210105198811083925jing xuan 78.5 92

二维码

扫码加我 拉你入群

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

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

关键词:sas的 数据输入 不知道是不是 SAS统计 Hang 统计

沙发
zhengbo8 发表于 2013-12-31 18:51:57 |只看作者 |坛友微信交流群
估计是笔误。

使用道具

藤椅
arlo 发表于 2014-1-6 15:29:09 |只看作者 |坛友微信交流群
那我就当它是笔误吧?
加一个问题:
如果数据是这样的,该怎么input呢? 主要是名字(first name)那里,长度不一,还有空格出现:
210101198707032911zhang lihui 98 90.5
210102198709030932ling dong 90.5 94
210101198709032611zhang guang 89 90
210101198709030932li xiao don 91.5 94
210103198801083948shang hong 88.5 97
210105198811083927wang ming 80.5 87
210103198801083944sun hong 85.5 77
210105198811083925jing xuan 78.5 92

使用道具

板凳
zhengbo8 发表于 2014-1-6 16:10:03 |只看作者 |坛友微信交流群
要多思考,方法如下:
  1. data a(drop=catlen cat);
  2.         infile datalines length=reclen;  
  3.         input id $ 1- 22 @;
  4.         catlen=reclen-22;     
  5.         input cat $varying30. catlen;
  6.         name=scan(cat,1,"1234567890");
  7.         english=scan(cat,1,"abcdefghijklmnopqrstuvwxyz ")+0;
  8.         computer=scan(cat,2,"abcdefghijklmnopqrstuvwxyz ")+0;
  9.             
  10. datalines;
  11. 210101198707032911zhang lihui 98 90.5
  12. 210102198709030932ling dong 90.5 94
  13. 210101198709032611zhang guang 89 90
  14. 210101198709030932li xiao don 91.5 94
  15. 210103198801083948shang hong 88.5 97
  16. 210105198811083927wang ming 80.5 87
  17. 210103198801083944sun hong 85.5 77
  18. 210105198811083925jing xuan 78.5 92
  19. ;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

使用道具

报纸
wwang111 发表于 2014-1-6 16:48:25 |只看作者 |坛友微信交流群
Age这个变量是我用今天的日期减去出生日期做的。

data test;
input text & $200.;
length name $20;
name=compress(text,'','ak');
age=int((date()-input(substr(text,7,8),yymmdd10.))/365.25);
if substr(text,18,1) in ('1','3','5','7','9') then sex='1';
else sex='2';
english=input(scan(text,-2,""),best.);
computer=input(scan(text,-1,""),best.);
drop text;
cards;
210101198707032911zhang lihui 98 90.5
210102198709030932ling dong 90.5 94
210101198709032611zhang guang 89 90
210101198709030932li xiao don 91.5 94
210103198801083948shang hong 88.5 97
210105198811083927wang ming 80.5 87
210103198801083944sun hong 85.5 77
210105198811083925jing xuan 78.5 92
;

data mstu fstu;
set test;
if sex='1' then output mstu;
else output fstu;
run;
只有一个罗纳尔多

使用道具

地板
arlo 发表于 2014-1-7 09:48:16 |只看作者 |坛友微信交流群
wwang111同学的能够得到想要的结果,学习了,以前没用过compress()
如果用zhengbo8的code,名字还是被分割了。。。比如第一行name显示为:

210101198707032911zhan g lihui 98 90.5

谢谢大家!

使用道具

7
harryshao 发表于 2016-7-19 13:57:08 |只看作者 |坛友微信交流群
好好学习 此贴是一个火贴

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 16:50