楼主: 肝贝
2393 11

求解读一段关于数组的sas程序 [推广有奖]

  • 12关注
  • 1粉丝

幸儿

博士生

48%

还不是VIP/贵宾

-

威望
0
论坛币
675 个
通用积分
6.2212
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
294 点
帖子
192
精华
0
在线时间
264 小时
注册时间
2013-11-9
最后登录
2019-11-19

楼主
肝贝 发表于 2014-2-1 14:17:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data a;
input x1-x7;
cards;
23 44 81 13 42 34 26
14 18 10 20 33 11 50
;
run;

data final;
  set a;
  array arr(1:7) x:;
  array copy(1:7) cx1-cx7;
  do m=1 to dim(arr);
  copy(m)=arr(m);
  end;
    do i=1 to dim(copy);
     do j=i+1 to dim(copy);
       if copy(j)>copy(i) then do;
       temp=copy(j);copy(j)=copy(i);copy(i)=temp;
       end;
     end;
    end;
run;

我想知道这里边的dim(arr)值是7还是2? 如果是7,我看不懂后边的冒泡语句,如果是2,那么后边do循环语句是不是可以简化?我还想问一下,如果用put语句将弟妹dim(arr)的值输出到log中,应该怎么编写程序??求解,谢谢!!
问候大家马年吉祥!!


二维码

扫码加我 拉你入群

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

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

关键词:sas程序 array cards put语句 Input 程序

I'll never let go.

沙发
肝贝 发表于 2014-2-1 19:35:57
拜托拜托 大家帮帮忙啊~~~
I'll never let go.

藤椅
醉生梦 发表于 2014-2-1 23:30:29
dim是7,冒号代表以x开头的所有变量,加上 n=dim(arr);put n;
已有 1 人评分论坛币 学术水平 收起 理由
Imasasor + 100 + 4 鼓励积极发帖讨论

总评分: 论坛币 + 100  学术水平 + 4   查看全部评分

自助者天助之

板凳
肝贝 发表于 2014-2-5 17:24:58
醉生梦 发表于 2014-2-1 23:30
dim是7,冒号代表以x开头的所有变量,加上 n=dim(arr);put n;
那后边的冒泡程序是怎么走的啊??我怎么觉得程序写得像是在横向比较大小,不像是纵向比较啊???
I'll never let go.

报纸
肝贝 发表于 2014-2-5 17:30:34
醉生梦 发表于 2014-2-1 23:30
dim是7,冒号代表以x开头的所有变量,加上 n=dim(arr);put n;
do语句中第一句是i到7,第二句是2到7,所以我理解到他是横向比较,想不通为什么是各变量纵向比较大小啊??不好意思~实在是菜鸟,看不懂,拜托了~~
I'll never let go.

地板
醉生梦 发表于 2014-2-5 20:39:42
肝贝 发表于 2014-2-5 17:30
do语句中第一句是i到7,第二句是2到7,所以我理解到他是横向比较,想不通为什么是各变量纵向比较大小啊? ...
先去好好学学pdv就能理解了
自助者天助之

7
肝贝 发表于 2014-2-5 22:03:49
醉生梦 发表于 2014-2-5 20:39
先去好好学学pdv就能理解了
谢谢 我之前有看到一点pdv 还没通精髓 能否指点一二???
I'll never let go.

8
醉生梦 发表于 2014-2-6 00:28:13
肝贝 发表于 2014-2-5 22:03
谢谢 我之前有看到一点pdv 还没通精髓 能否指点一二???
纵向比较是指什么?这个程序只是把每个obs中按从大到小进行排列,并没有对每列进行操作啊
自助者天助之

9
jzh63 发表于 2014-2-6 10:56:29
同意楼上的看法,dim(arr) is 7. 这个程序应该就是重新从大到小排列。
个人觉得这个程序存在一些漏洞,比如说第一个值是missing。
楼主可以把log语句放在loop j 里面,sas 就可以输出所有的信息,这样方便检查。


已有 1 人评分经验 论坛币 学术水平 热心指数 收起 理由
Imasasor + 100 + 100 + 5 + 5 对论坛有贡献

总评分: 经验 + 100  论坛币 + 100  学术水平 + 5  热心指数 + 5   查看全部评分

10
肝贝 发表于 2014-2-6 11:24:12
醉生梦 发表于 2014-2-6 00:28
纵向比较是指什么?这个程序只是把每个obs中按从大到小进行排列,并没有对每列进行操作啊
对对 是的是的,不好意思 我在打开数据集时 只看到了前边的变量值 没有看到后边还有对应的cx1-cx7
刚刚想给您复制结果的时候 才查看到,实在是不仔细 太不应该了
多谢多谢
I'll never let go.

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

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