我想要一个代码将数字替换为列中的字符。
例如:0 - "否1 - "是"。
我尝试使用if / else但是它不起作用!!!
Data Assign2.Grocery_coup_two;
Set Assign2.Grocery_coupons;
If Heath_food_Store = 0
then Health_food_Store = "No";
Else Health_food_Store = "Yes";
Run;
Health_Food_Store
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
答案 0 :(得分:4)
您的解决方案无效,因为您正在尝试将数字变量转换为字符串变量。解决此问题的一种方法是将数字变量重命名为_old,然后运行if-else语句:
Data Assign2.Grocery_coup_two;
Set Assign2.Grocery_coupons (rename = (Health_food_Store = Health_food_Store_old));
If Heath_food_Store_old = 0
then Health_food_Store = "No";
Else Health_food_Store = "Yes";
DROP Health_food_Store_old;
Run;
答案 1 :(得分:1)
一种解决方案是使用SAS格式。就像您可以将数字变量格式化为日期(例如DATE9。很受欢迎)一样,您可以创建自己的格式。
如果您不想在代码中重复if ... then语句,这非常有用。
在您的情况下,下面的解决方案可能会有用。
Proc format;
value $YN
1 = 'Yes'
0 = 'No'
;
run;
Data Assign2.Grocery_coup_two;
Set Assign2.Grocery_coupons;
format Health_food_Store $YN.;
run;
proc format
语句会创建新格式$YN
,该格式适用于Health_food_Store
条件的set
。