2017-04-24 58 views
-4

假设我有数据称为数据并且变量的年龄为 并且我正在寻找一种方法将表示年龄的变量分成一个显示年龄组含义的新变量18-21,21 -24等等。 我知道如何做到这一点与PROC SQL,如果,但我明白有一种有效的方式来使用循环功能。在sas中划分一个数字变量

有人知道如何使用round来分割数值变量吗?

谢谢。

+1

你应该展示一些尝试将自己做成一个有效的SO问题。你是否也考虑过创建一个显示数据的格式?这样你不需要一个新的变量。 – Longfish

回答

0

方法一:使用的if/else
方法2:使用PROC格式
我有共同的方法2中的代码,你已经知道方法1

proc format; 
value age 
low - 9 = '0 - 9' 
10 - 19 = '10 - 19' 
20 - 29 = '20 - 29' 
30 - 39 = '30 - 39' 
40 - 49 = '40 - 49' 
50 - 59 = '50 - 59' 
60 - high = '60 +++' 
; 
run; 


/**1) If you just want to look at age in bucket form   **/ 
    data abc; 
    set abc; 
    format age age.; 
    run;  

/**2) If you want to create another variable(say age_bucket) **/ 
    data abc; 
    set abc; 
    age_bucket = put(age,age.); 
    run; 

让我知道有任何疑问的情况。