在SAS中格式化以创建存储桶
我使用以下代码在SAS中存储连续变量,但它不起作用:在SAS中格式化以创建存储桶,sas,format,Sas,Format,我使用以下代码在SAS中存储连续变量,但它不起作用: proc freq data = right; table Age; run; proc format; value AgeBuckets low -< 74 = "Younger" 75 -< 84 = "Older" 85 - high = "Oldest" run; data right; format Age AgeBuckets.; run; proc freq data=right;
proc freq data = right;
table Age;
run;
proc format;
value AgeBuckets
low -< 74 = "Younger"
75 -< 84 = "Older"
85 - high = "Oldest"
run;
data right;
format Age AgeBuckets.;
run;
proc freq data=right;
桌龄;
跑
proc格式;
价值桶
低-<74=“更年轻”
75-<84=“更老”
85-高=“最老”
跑
数据权;
设置存储桶的格式。;
跑
它删除了所有的记录,所以我没有更多的数据在那里。我做错了什么
此外,最好是在使用if/then语句的连续变量的基础上创建一个新变量(带扣的版本)?您只是没有设置数据集,而是创建一个新的数据集
data right;
set right;
format Age AgeBuckets.;
run;
proc print;
run;
此外,您还将74岁和84岁的孩子排除在外。您可能还希望将它们包括在内:
proc format;
value AgeBuckets
low -< 74 = "Younger"
74 -< 84 = "Older"
84 - high = "Oldest"
run;
proc格式;
价值桶
低-<74=“更年轻”
74-<84=“更老”
84-高
跑
您只是没有设置数据集,而是创建一个新的数据集
data right;
set right;
format Age AgeBuckets.;
run;
proc print;
run;
此外,您还将74岁和84岁的孩子排除在外。您可能还希望将它们包括在内:
proc format;
value AgeBuckets
low -< 74 = "Younger"
74 -< 84 = "Older"
84 - high = "Oldest"
run;
proc格式;
价值桶
低-<74=“更年轻”
74-<84=“更老”
84-高
跑
proc format;
value AgeBuckets
low -< 75 = "Younger"
75 -< 85 = "Older"
85 - high = "Oldest"
run;
data right_formatted;
set right;
format Age AgeBuckets.;
*create new variable with formatted value, will not sort correctly;
Age_Formatted = put(age, ageBuckets.);
run;
@pythonrsas用户对您的格式也是正确的
proc format;
value AgeBuckets
low -< 75 = "Younger"
75 -< 85 = "Older"
85 - high = "Oldest"
run;
data right_formatted;
set right;
format Age AgeBuckets.;
*create new variable with formatted value, will not sort correctly;
Age_Formatted = put(age, ageBuckets.);
run;
@Python R SAS用户对您的格式也是正确的。这正是注释的帮助所在,因为我们并不总是知道您要做什么。不,使用IF/THEN语句从来没有比使用IF/THEN语句更有效。这才是注释真正有用的地方,因为我们并不总是知道您想要做什么。不,使用IF/THEN语句永远不会更有效。put很棒!它更改了新的age_格式变量以及“原始”age变量。我是否可以使用put,以便原始的年龄分布与新的格式化版本保持一致?因此,最初的年龄分布(比如说)50级是第一列,它旁边的一列有3级(不算缺失)。还有一个问题——在使用put时,我会非常感兴趣的是,它是否将年龄级别压缩成数字,比如1、2、3,而不是文本。有没有一种简单或推荐的方法可以做到这一点?
format
语句更改原始变量的显示put
将其重新编码为新变量,类似于IF/THEN。要更改显示或显示的值,请更改格式。您确实需要了解这里的每个步骤,因为这是在SAS中使用数据的一些基础知识。所以,改变不同的事情,看看会发生什么,这样你就能明白每一行都在做什么。put很棒!它更改了新的age_格式变量以及“原始”age变量。我是否可以使用put,以便原始的年龄分布与新的格式化版本保持一致?因此,最初的年龄分布(比如说)50级是第一列,它旁边的一列有3级(不算缺失)。还有一个问题——在使用put时,我会非常感兴趣的是,它是否将年龄级别压缩成数字,比如1、2、3,而不是文本。有没有一种简单或推荐的方法可以做到这一点?format
语句更改原始变量的显示put
将其重新编码为新变量,类似于IF/THEN。要更改显示或显示的值,请更改格式。您确实需要了解这里的每个步骤,因为这是在SAS中使用数据的一些基础知识。所以,改变不同的事情,看看会发生什么,这样你就能明白每一行都在做什么。