SAS 使用 proc 转置使长种族和种族变量变宽

问题描述 投票:0回答:1

我正在使用 10 年 CDC 人口数据按州和年份进行分析。在分析中,我将使用种族和民族数据。我遇到的问题是弄清楚如何使用 proc 转置使每个种族和民族成为自己的列,同时保留每个州和年份的准确人口数据。

目前的数据如下:

State   Year Race Eth Pop
Alabama 2010 White NH xxxx
Alabama 2010 Black NH xxxx
Alabama 2010 Asian NH xxxx
Alabama 2010 AI/AN H  xxxx

我希望数据看起来像这样:

State    Year White/NH Black/NH Asian/NH AI/AN/H
Alabama  2010  xxxx      xxxx    xxxx     xxxx

我可以使用 proc 转置来做到这一点吗?如果有更好的方法来格式化我想要的数据外观,我提前道歉,我不擅长在这里写问题。

谢谢!!

sas transpose population
1个回答
0
投票

虽然不能使用 / 作为分隔符,但可以使用下划线。我们将使用 Race 和 Eth 作为 ID 来创建变量,并按州和年份进行转置。

proc transpose data=have 
               out=want(drop=_NAME_)
               delimiter=_;
    by state year;
    id race eth;
    var pop;
run; 
State   Year    White_NH    Black_NH    Asian_NH    AI/AN_H
Alabama 2010    xxxx        xxxx        xxxx        xxxx
© www.soinside.com 2019 - 2024. All rights reserved.