楼主: 蓝蔷_小k
8393 7

求助:SAS中如何将变量的一系列观察值设置成数组 [推广有奖]

  • 0关注
  • 0粉丝

大专生

30%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
307 点
帖子
29
精华
0
在线时间
44 小时
注册时间
2012-5-3
最后登录
2015-3-10

楼主
蓝蔷_小k 发表于 2014-3-24 12:21:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题~

假设我在SAS中导入一个数据集,有三个变量,想把x1,x2设置成数组的形式(x1,x2观察值个数不一样),SAS中要用什么命令实现?
二维码

扫码加我 拉你入群

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

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

关键词:数据集 如何

沙发
intheangel 学生认证  发表于 2014-3-24 14:52:16
array t[2] x1 x2;
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

藤椅
蓝蔷_小k 发表于 2014-3-24 17:47:48
intheangel 发表于 2014-3-24 14:52
array t[2] x1 x2;
好像不行耶,我是想要将x1,x2设置成独立的两个数组~~

因为我想用其中的观察值,比如对于x1中的每个观察值,我想知道x2中是否有同样的?

板凳
intheangel 学生认证  发表于 2014-3-24 19:05:14
  1. data a;
  2. input x y;
  3. cards;
  4. 1 2
  5. 123 12
  6. 123 213
  7. 43 43
  8. 12 12
  9. 23 1
  10. 23 23
  11. 23 .
  12. 122 .
  13. 1234 .
  14. ;
  15. run;

  16. data b;
  17. set a;
  18. array t[2] x y;
  19. do i=1 to dim(t);
  20. if t[1]=t[2] then output;
  21. end;
  22. run;
复制代码
你说的是这个意思么?但是我不懂,如果你想比较两个是否相同,直接比不就好了,干嘛用数组呢?
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

报纸
蓝蔷_小k 发表于 2014-3-24 19:40:39
intheangel 发表于 2014-3-24 19:05
你说的是这个意思么?但是我不懂,如果你想比较两个是否相同,直接比不就好了,干嘛用数组呢?
是这样的~我的x1,x2是两列日期数据,然后我想要做的是对于x2中的日期,如果x1里有的话就保留下来~~
比如x1是1990-1-1,1990-1-2,1990-1-3,1990-1-5
      x2是1990-1-1,1990-1-3,1990-1-4,1990-1-5

如果直接比的话x2就只保留了1990-1-1,但后面的1-3和1-5就没保留了,所以我就想到用数组的形式~

地板
intheangel 学生认证  发表于 2014-3-24 20:51:04
我没有用数组做,但是效果应该一样
  1. data a;
  2. input x1 yymmdd8. @10 x2 yymmdd8.;
  3. cards;
  4. 19900101 19900101
  5. 19900102 19900103
  6. 19900103 19900104
  7. 19900105 19900105
  8. ;
  9. run;
  10. data b(keep=x1);
  11. set a;
  12. run;
  13. data c(keep=x2 rename=(x2=x1));
  14. set a;
  15. run;
  16. data d;
  17. merge b(in=f1) c(in=f2);
  18. by x1;
  19. if f1 and f2;
  20. format x1 yymmdd8.;
  21. run;
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

7
蓝蔷_小k 发表于 2014-3-24 21:22:29
intheangel 发表于 2014-3-24 20:51
我没有用数组做,但是效果应该一样
学习了,谢谢!

8
yijiangdesu 发表于 2022-7-3 14:45:45
蓝蔷_小k 发表于 2014-3-24 19:40
是这样的~我的x1,x2是两列日期数据,然后我想要做的是对于x2中的日期,如果x1里有的话就保留下来~~
比如 ...
用sql 似乎也可以实现:
data a;
        input x1  x2 ;
        cards;
        0 2
        2 3
        5 8
        8 9
        11 10
        ;
run;

proc sql noprint;
        create table a1 as
        select x1
        from a
        where x1 in (select x2 as x1 from a)
        ;
quit;

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

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