楼主: sunjiangwei
8638 8

SAS数据处理中如何只保留某特定观察值 [推广有奖]

  • 2关注
  • 0粉丝

博士生

7%

还不是VIP/贵宾

-

威望
0
论坛币
1029 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
844 点
帖子
106
精华
0
在线时间
200 小时
注册时间
2014-4-20
最后登录
2022-1-10

楼主
sunjiangwei 发表于 2016-3-18 09:46:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求各位大神路过,帮忙解决,我想把图1的数据变成图2,即只要a1中有等于1的,后面的a2-a4均为0,由于我的数据中共有一百多个像a1,a2这样的观测,所以,用手一个一个把所有的a变量都写出来,太麻烦了,希望能用简单的方法来解决,谢谢各位 1.png 2.png
二维码

扫码加我 拉你入群

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

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

关键词:sas数据处理 数据处理 麻烦了 sas 程序 变量处理

沙发
孤单的我们 发表于 2016-3-18 10:39:04
if a1=1 then do; a2=0;a3=0;a4=0;end;

藤椅
sunjiangwei 发表于 2016-3-18 10:42:56
孤单的我们 发表于 2016-3-18 10:39
if a1=1 then do; a2=0;a3=0;a4=0;end;
谢谢您,可是我需要处理的a变量,有一百多个,如果全是这么写,我要累死的,不知道您还知不知道其他更高效的方法

板凳
孤单的我们 发表于 2016-3-18 10:45:24
array num_a a2-a100;
do i=2 to dim(num_a);
if a1=1 then a{i}=0;
end;

报纸
nniebo 发表于 2016-3-18 10:47:04
可以用数组做。

data test;
        input a1 a2 a3 a4;
        cards;
        1 0 1 1
        0 1 1 1
        0 1 1 0
        1 0 0 1
        ;
run;
data result;
        set test;
        array a[4] a1-a4;
        if a[1]=1 then do i=2 to 4;
        a[i]=0;
        end;
        drop i;
run;

地板
sunjiangwei 发表于 2016-3-18 10:58:30
孤单的我们 发表于 2016-3-18 10:45
array num_a a2-a100;
do i=2 to dim(num_a);
if a1=1 then a{i}=0;
大神,谢谢您的回答,但是我的数据中存在这样的情况(如下图中id=2的观测)它的a1为0,但a2和a5为1,我想把a2之后的所有变量都变为0,所以用您刚刚这个程序就无法实现了
图3

7
孤单的我们 发表于 2016-3-18 11:03:43
  1. data b;
  2.         set a;
  3.         array a a:;
  4.         do i=1 to dim(a)-1;
  5.                 do j=i+1 to dim(a);
  6.                         if a{i}=1 then a{j}=0;
  7.                 end;
  8.         end;
  9. run;
复制代码

8
sunjiangwei 发表于 2016-3-18 11:11:01
nniebo 发表于 2016-3-18 10:47
可以用数组做。

data test;
大神您好,就像您在这个程序中写的那样,第二个和第三个观测中的A2 A3都为1,如果我想, 当A2为1时(即当A1为0),A3-An也都为0,A3为1时(即当A1,A2均为0),A4-An也都为0,依次类推,该如何实现呢?谢谢大神

9
sunjiangwei 发表于 2016-3-18 11:18:10
孤单的我们 发表于 2016-3-18 11:03
大神,谢谢,问题已经解决

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

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