楼主: congmu
3377 10

关于@@读取数据的问题 [推广有奖]

  • 2关注
  • 0粉丝

已卖:1147份资源

硕士生

42%

还不是VIP/贵宾

-

威望
0
论坛币
3931 个
通用积分
24.4704
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1689 点
帖子
95
精华
0
在线时间
210 小时
注册时间
2012-10-25
最后登录
2024-7-31

楼主
congmu 发表于 2014-5-24 11:27:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
是这样的,有一个数据流a 2 b 3 c   d 4 6希望读入这样的形式
id  no
a   2
b   3
c   .
d   4
.    6
应该是用@@进行读入(或者使用其他的方法我并不清楚)但是应该怎么才能让sas知道c后面的no变量为确实,6前面的id变量为缺失呢。下面这段程序读出来不对,不能把源数据改成
cards;
a   2
b   3
c   
d   4
     6
;
读入。。。。这是作业题,,,,,希望大家能帮帮忙
  1. data ex.hw4_1_2;
  2. input id $ no @@;
  3. cards;
  4. a 2 b 3 c   d 4 6
  5. ;
  6. run;
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:读取数据 cards Input card Data 数据流 程序

回帖推荐

mingfeng07 发表于10楼  查看完整内容

intheangel 发表于7楼  查看完整内容

如果你c后面有3个空格,表示缺失了一个,6前面应该也有3个空格表示缺失了一个吧; 好奇怪的题目,你们老师太过分了;

沙发
君子博 发表于 2014-5-24 11:32:47
貌似有一定难度,同问

藤椅
congmu 发表于 2014-5-24 11:44:20
君子博 发表于 2014-5-24 11:32
貌似有一定难度,同问
谢谢帮顶

板凳
longgb246 学生认证  发表于 2014-5-24 11:55:39
  1. data hw4_1_2;
  2. input id $ 1 no 3;
  3. cards;
  4. a 2
  5. b 3
  6. c  
  7. d 4
复制代码
1、3表示读取第1、3列。是问这个吗?

报纸
congmu 发表于 2014-5-24 12:05:28
longgb246 发表于 2014-5-24 11:55
1、3表示读取第1、3列。是问这个吗?
数据流要以这样的形式a 2 b 3 c   d 4 6
怎么样才能正确的读入,不能改成那样一列一列整齐的形式

地板
intheangel 学生认证  发表于 2014-5-24 12:29:00
这个只能配出来吧。。这中间3个空格肯定是当做一个分隔符来用啊,如果分行可以用missover,这又不能分行,怎么输入,囧
  1. data hw4_1_2;
  2. input @1 id $1. @3 no 1. @;
  3. output;
  4. input @5 id $1. @7 no 1. @;
  5. output;
  6. input @9 id $1. @11 no :1 @;
  7. output;
  8. input @13 id $1. @15 no 1. @;
  9. output;
  10. input @17 no;
  11. if id='d' then
  12. id='.';
  13. output;
  14. cards;
  15. a 2 b 3 c   d 4 6
  16. ;
  17. run;
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

7
intheangel 学生认证  发表于 2014-5-24 12:44:16
如果你c后面有3个空格,表示缺失了一个,6前面应该也有3个空格表示缺失了一个吧;
好奇怪的题目,你们老师太过分了;
  1. data hw4_1_2;
  2. input string $20.;
  3. cards;
  4. a 2 b 3 c   d 4   6
  5. ;
  6. run;
  7. %macro a();
  8. data a;
  9. set hw4_1_2;
  10. %do i=1 %to 20 %by 4;
  11. x&i=substr(string,&i,4);
  12. %end;
  13. run;
  14. %mend a;
  15. %a

  16. %macro b();
  17. data b(keep=id no);
  18. set a;
  19. %do i=1 %to 5;
  20. %let j=%eval(&i*4-3);
  21. y&i=substr(x&j,1,1);
  22. z&i=substr(x&j,3,1);
  23. id=y&i;
  24. no=z&i;
  25. output;
  26. %end;
  27. run;
  28. %mend b;
  29. %b
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

8
congmu 发表于 2014-5-24 13:06:51
intheangel 发表于 2014-5-24 12:44
如果你c后面有3个空格,表示缺失了一个,6前面应该也有3个空格表示缺失了一个吧;
好奇怪的题目,你们老师 ...
谢谢。我也觉得。。。是在太过分了~。我再看看,谢谢`

9
intheangel 学生认证  发表于 2014-5-24 13:16:15
congmu 发表于 2014-5-24 13:06
谢谢。我也觉得。。。是在太过分了~。我再看看,谢谢`
前面都还好,最后一个缺失的e缺失有点麻烦
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

10
mingfeng07 学生认证  发表于 2014-5-24 23:29:04
  1. /*正常情况下如果有缺失值的话,应该会显示空格的,不然别人无法知道是缺失值,所以你的数据流应该是这样的:a 2 b 3 c   d 4   6*/
  2. data a;
  3. input id $2. no 2. @@;
  4. if _n_<=5;
  5. cards;
  6. a 2 b 3 c   d 4   6
  7. ;
  8. run;
复制代码
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

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

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