我想使用其他变量的值作为SAS中的信息。
我有一个变量项,其值表示组,我想创建一个称为desc的新变量。
data x;
input item $ group;
datalines;
race 1
race 2
race 3
gender 1
gender 2
;
run;
proc format;
value race
1=White
2=Black
3=Other
;
gender
1=Female
2=male
;
run;
理想情况下,我想像这样使用项目和组中的值创建变量desc:
data y;
set x;
desc=put(item,group.);
run;
我希望得到:
item group desc
race 1 White
race 2 Black
race 3 Other
gender 1 Female
gender 2 male
但是,我得到了:
item group desc
race 1 put(race,1.)
race 2 put(race,2.)
race 3 put(race,3.)
gender 1 put(gender ,1.)
gender 2 put(gender,2.)
答案 0 :(得分:1)
您可以创建一种格式,将两个值的不同串联映射到单个描述。
proc format;
value $two_for_one
'race:1' = 'white'
'race:2' = 'black'
'race:3' = 'other'
'gender:1' = 'female'
'gender:2' = 'male'
data want;
set have;
desc = put(catx(':',item,group), $two_for_one.);
run;
答案 1 :(得分:1)
您必须使用 PUTN 。也是项目,必须交换,因为项目包含格式名称。
data x;
input item $ group;
datalines;
race 1
race 2
race 3
gender 1
gender 2
;
run;
proc format;
value race
1=White
2=Black
3=Other
;
value gender
1=Female
2=male
;
run;
data y;
set x;
desc=putn(group,item);
run;
答案 2 :(得分:0)
您已经关闭。更改格式声明,该值需要性别值
proc format;
value race
1=White
2=Black
3=Other
;
value gender
1=Female
2=male
;
run;
data y;
set x;
if trim(item) ="race" then desc=put(group,race.);
if trim(item) ="gender" then desc=put(group,gender.);
run;