楼主: duanesummer
1671 11

[问答] 大虾请进,请教IF/THEN一个问题,拜托了! [推广有奖]

  • 1关注
  • 2粉丝

已卖:168份资源

本科生

66%

还不是VIP/贵宾

-

威望
0
论坛币
194 个
通用积分
24.7522
学术水平
5 点
热心指数
10 点
信用等级
2 点
经验
418 点
帖子
108
精华
0
在线时间
47 小时
注册时间
2007-6-25
最后登录
2016-8-9

楼主
duanesummer 发表于 2013-5-11 01:39:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我需要用if/then这个statement创建一个新的variable ‘type',数据本身除了ID,有5个variable了,通过创建新的variable,最后的数据想出现如下的效果,例子如下,但是问题是怎么写这个if的statement呢?跪谢了!!!

还有一个小问题,就是需要考虑Missing data吗?

ID VAR1 VAR2 VAR3 VAR4 VAR5 TYPE
1    A                                          A
2    B                                          B
3    A       A                                 A
4    B       B       B                        B
5    A       B       A                      MIX
6    A       A       A       A       A      A
7    B       B       B       B               B
8    A       A       A       A       B    MIX
9    B       A                               MIX

二维码

扫码加我 拉你入群

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

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

关键词:Then 拜托了 The statement Variable

沙发
yuerqieqie 发表于 2013-5-11 01:52:02
最原始的方法
length Type $8.;
array var{*} var1-var5;
A = 0; B = 0;
do i = 1 to dim(&var);
        if var[i] = 'A' then A = 1;
        else if var[i] = 'B' then B = 1;
end;

if A = 1 and B = 0 then Type = 'A';
else if A = 0 and B = 1 then Type = 'B';
else if A = 1 and B = 1 then Type = 'Mix';

藤椅
duanesummer 发表于 2013-5-11 02:11:14
yuerqieqie 发表于 2013-5-11 01:52
最原始的方法
length Type $8.;
array var{*} var1-var5;
那请问最后还需要加一个else type = 'mix'; 吗?

板凳
yuerqieqie 发表于 2013-5-11 02:14:31
duanesummer 发表于 2013-5-11 02:11
那请问最后还需要加一个else type = 'mix'; 吗?
Type 在循环完array之后再确定的
Type :Mix由下面的statement确定
if A = 1 and B = 1 then Type = 'Mix';

报纸
duanesummer 发表于 2013-5-11 03:38:59
yuerqieqie 发表于 2013-5-11 02:14
Type 在循环完array之后再确定的
Type :Mix由下面的statement确定
if A = 1 and B = 1 then Type = 'M ...
多谢MM啊。。我周一回公司试一下。。。

地板
duanesummer 发表于 2013-5-11 04:32:46
yuerqieqie 发表于 2013-5-11 01:52
最原始的方法
length Type $8.;
array var{*} var1-var5;
MM,我还想请问一下,就是array的定义,是不是应该写成:
array var_array{5}var1-var5;

7
yuerqieqie 发表于 2013-5-11 04:57:12
duanesummer 发表于 2013-5-11 04:32
MM,我还想请问一下,就是array的定义,是不是应该写成:
array var_array{5}var1-var5;
如果你知道dimension的话,可以直接写在{}里;不知道的话可以写成{*}, SAS会自动根据后面var1-var5去判断dimension.

8
duanesummer 发表于 2013-5-11 05:07:41
yuerqieqie 发表于 2013-5-11 04:57
如果你知道dimension的话,可以直接写在{}里;不知道的话可以写成{*}, SAS会自动根据后面var1-var5去判断 ...
MM真是SAS的高手啊。。。。
那数据里面的missing data需要考虑吗?
最后是不是需要drop i呢?

9
yuerqieqie 发表于 2013-5-11 05:12:01
duanesummer 发表于 2013-5-11 05:07
MM真是SAS的高手啊。。。。
那数据里面的missing data需要考虑吗?
最后是不是需要drop i呢?
根据你的要求,missing value does not matter.

如果想让数据更clean, drop i是最好的了

10
duanesummer 发表于 2013-5-11 05:17:03
yuerqieqie 发表于 2013-5-11 05:12
根据你的要求,missing value does not matter.

如果想让数据更clean, drop i是最好的了
MM,你的SAS花了多久才到这个阶段的啊?我现在才开始用,觉得好痛苦啊。。。。

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

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