楼主: 王贴贴123456
1424 6

数组问题 [推广有奖]

  • 10关注
  • 5粉丝

博士生

59%

还不是VIP/贵宾

-

威望
0
论坛币
146 个
通用积分
5.3500
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
4690 点
帖子
187
精华
0
在线时间
357 小时
注册时间
2012-9-24
最后登录
2024-8-15

楼主
王贴贴123456 在职认证  发表于 2016-11-7 21:13:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
表白在学习数组,有些地方比较困惑,求解。
1、
目的:已知一个数据集,将该数据集利用数组的思路,生成另外一组数据,另外一个数据是在该数据集的相应的数据上+1
  1. data i;
  2. input qu1-qu24 @@;
  3. array vivi{24};
  4. array jiao{24}we1-we24;
  5. do i=1 to 24;
  6. jiao{i} = vivi{i}-1;
  7. i=i+1;
  8. end;
  9. datalines;
  10. 35 37 40 42 44 48 55 59 62 62 64 66 68 70 72 75 75
  11. 72 66 55 53 52 50 45
  12. ;
  13. run;
复制代码
问题:数据最终结论qu1-qu24外,其他均为空。
2、
问题:请问下面程序中的er{1999}带表的是45000对应的这一列的数据吗?
  1. data qw;
  2. input id  fee1999-fee2006;
  3. array er{1999:2006} fee1999-fee2006;
  4. array ty{1999:2006} mon1999-mon2006;
  5. do year=1999 to 2006;
  6.    ty{year}=er{year}+1;
  7. end;
  8. datalines;
  9. 001 45000 47000 47500 48000 48000 52000 53000 55000
  10. 002 67130 68000 72000 70000 65000 52000 49000 40100
  11. ;
  12. run;
复制代码
3、如何看待输出的数据是不是双倍行距输出的(double的意思是双倍行距,对吗),下图为有double和无double字段,输出的数据样子,感觉没差别呀。
  1. proc print data=vivi.hosp label n double ;
  2. var Subject
  3.     AdmitDate
  4.     DischrDate
  5.     dob
  6.         ;
  7. label AdmitDate ="Admission Date"
  8.       DischrDate="Discharge Date"
  9.       dob="Date of Birth"
  10.           ;
  11. run;
复制代码
捕获.PNG
4、请问有没有SAS中学习二维数组比较好的资料什么的呀,感觉在学二维数组的时候有些困惑。不胜感激。


二维码

扫码加我 拉你入群

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

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

关键词:Admission Mission Subject double CHARGE 程序

沙发
zhangzachary 发表于 2016-11-8 11:04:31
1. input qu1 - qu24 只有这些变量读取了datalines下面的数据,其他数组为空
2. 是的
3. DOUBLE: writes a blank line between observations. Restriction DOUBLE is valid only for the ODS LISTING destination.
4. SAS自带的Help文档
已有 1 人评分经验 收起 理由
李会超 + 80 精彩帖子

总评分: 经验 + 80   查看全部评分

藤椅
王贴贴123456 在职认证  发表于 2016-11-8 14:06:44
zhangzachary 发表于 2016-11-8 11:04
1. input qu1 - qu24 只有这些变量读取了datalines下面的数据,其他数组为空
2. 是的
3. DOUBLE: writes  ...
第一个问题中,我已经对we1-we24变量=vivi1-vivi24-1操作,呀,案例说应该有值呀,为什么没有。谢谢

板凳
zhangzachary 发表于 2016-11-8 15:19:18
王贴贴123456 发表于 2016-11-8 14:06
第一个问题中,我已经对we1-we24变量=vivi1-vivi24-1操作,呀,案例说应该有值呀,为什么没有。谢谢
因为vivi这个array是空的。
Try: array vivi{24} qu1-qu24;
另外,Do循环中的i = i + 1;不知道是否是你需要的,一般不会这么写,意义会不同。

报纸
王贴贴123456 在职认证  发表于 2016-11-8 21:13:28
zhangzachary 发表于 2016-11-8 15:19
因为vivi这个array是空的。
Try: array vivi{24} qu1-qu24;
另外,Do循环中的i = i + 1;不知道是否是你 ...
那我操作的—1的那些值,存储在哪里呢?去哪找?

还有:我用那个i=i+1的原因,是因为c中好像有这样的一个循环条件,sas中不用的原因是什么呀,难道默认就是一次循环增加一个值。

不胜感激。

地板
zhangzachary 发表于 2016-11-9 11:20:54
王贴贴123456 发表于 2016-11-8 21:13
那我操作的—1的那些值,存储在哪里呢?去哪找?

还有:我用那个i=i+1的原因,是因为c中好像有这样的一 ...
写成array vivi{24} qu1-qu24 之后,-1的值就在we1-we24里面了。
Do循环默认递增1,所以并不需要i=i+1,否则就变成by step 2了。
已有 1 人评分经验 热心指数 收起 理由
prince315 + 20 + 1 精彩帖子

总评分: 经验 + 20  热心指数 + 1   查看全部评分

7
王贴贴123456 在职认证  发表于 2016-11-9 13:57:12
zhangzachary 发表于 2016-11-9 11:20
写成array vivi{24} qu1-qu24 之后,-1的值就在we1-we24里面了。
Do循环默认递增1,所以并不需要i=i+1, ...
多谢多谢

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

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