楼主: henanshf
1615 2

请问如何把同一个观测里面值相同的不同的变量找出来 [推广有奖]

  • 0关注
  • 0粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
615 点
帖子
28
精华
0
在线时间
27 小时
注册时间
2014-5-17
最后登录
2018-10-25

楼主
henanshf 发表于 2015-2-6 13:24:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有一个数据集 变量是var1 - varn
我想把同一个观测里面的重复的值找出来, 输出到一个新的数据集,
比如:
                id                var1          var2            var3              var4              var5               var6
obs1         1                 3               1                 2                    1                  .                      .
obs2         2                 2              2                 2                    3                   5                   6


obs1   里面的var2和var4值相等,  所以需要把其中一个, 比方说var4的那个1取出来放入新的数据集,  老数据集的var4就变成 "."
obs2   里面要把var2和var3的2取出来放入新的数据集,  老数据集的var2和var3就变成 "."

只比较同一行里面的重复值, 不同的obs之间不比较.
同一行里面只比较var1-varn,  id不参与比较.
取出来的重复值最好带着本行(obs)的id写入新的数据集.


求解.   非常感谢~



二维码

扫码加我 拉你入群

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

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

关键词:非常感谢 VaR 数据集 obs 重复值 如何

沙发
wpfwxn 发表于 2015-2-6 15:34:34
不知道下面的程序是否符合你要去

data exdata;
        input x1-x6;
        cards;
        1 2 3 4 2 4
        5 6 4 3 2 1
        3 4 5 4 3 2
        1 2 3 4 2 1
        ;
run;


data out1(keep = x:) out2(keep = obs y: where = (obs ^= .));
        set exdata;
        array varlst1(6) x1 - x6;
        array varlst2(6) y1 - y6;

        do i = 2 to 6;
          do j = 1 to i - 1;
             if varlst1(i) = varlst1(j) then do;
                    varlst2(i) = varlst1(i);
                        obs = _N_;
                 end;
          end;
        end;

        do k = 1 to 6;
           if ^missing(varlst2(k)) then varlst1(k) = .;
        end;
run;

藤椅
henanshf 发表于 2015-2-9 08:12:30
wpfwxn,

你好. 非常感谢.  基本是我想要的, 我尝试修改没能弄成,  我是个小菜鸟, 对某些结构和原理不是很理解,
能不能麻烦你帮我做些小修改.

我把数据做了点小改动:

data exdata;
        input x1-x7;
        cards;
        15 1 2 3 4 2 4
        16 5 6 4 3 2 1
        17 3 4 5 4 3 2
        18 1 2 3 .  .  .
        ;
run;

1. x1不参与比较. 还有就是最后一行的三个缺失值不算, 不需要输出重复的两个缺失值到out2中
2. out2中第一个变量名是y1, 记录出现重复值的行对应的x1的值(也就是15和17). obs就不再输出到out2了.
然后记录重复值的变量名是y2-y7

能麻烦你帮我完善一下吗?    非常感谢.


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

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