Skip to content

statefips: State - FIPS code

statefips title image

Description

statefips is the FIPS code for the state of residence of the household. See also statecensus.

Availability

Sample Years
Basic 1978 - present
ORG 1979 - present

Values

Value Label
1 AL
2 AK
4 AZ
5 AR
6 CA
8 CO
9 CT
10 DE
11 DC
12 FL
13 GA
15 HI
16 ID
17 IL
18 IN
19 IA
20 KS
21 KY
22 LA
23 ME
24 MD
25 MA
26 MI
27 MN
28 MS
29 MO
30 MT
31 NE
32 NV
33 NH
34 NJ
35 NM
36 NY
37 NC
38 ND
39 OH
40 OK
41 OR
42 PA
44 RI
45 SC
46 SD
47 TN
48 TX
49 UT
50 VT
51 VA
53 WA
54 WV
55 WI
56 WY

Code

Variable creation
********************************************************************************
* statefips
********************************************************************************
gen byte statefips = .

if $marchcps == 1 {

    if tm(1962m1) <= $date & $date <= tm(2000m12) {
        * to do: identify correct state codes for marchcps
        * sometimes tricky in early years
        cap drop region
        merge m:1 statefips using $stategeocodes, keep(1) nogenerate
    }

    if tm(2001m1) <= $date {
        replace statefips = gestfips
        * we want the missing values and the full value labels, so do the following merge
        merge m:1 statefips using $stategeocodes, assert(3) nogenerate
        cap rename hg_reg gereg
        assert region == gereg
        * ridiculous hack to pull in value labels for statefips
        * which are not merged above
        drop statefips
        rename statefips_alt statefips
    }
}

if $monthlycps == 1 | $maycps == 1 {
    * some codes in 1976 do not match Unicon documentation
    * for now, ensure missing codes for 1976-1977
    if tm(1973m1) <= $date & $date <= tm(1977m12) {
        drop region
        * even though all state (and other geographic) codes will be missing
        * we want the missing values and the full value labels, so do the following merge
        merge m:1 statefips using $stategeocodes, nogenerate keep(1)
        * ridiculous hack to pull in value labels for statefips
        * which are not merged above
        drop statefips
        rename statefips_alt statefips
    }
    if tm(1978m1) <= $date & $date <= tm(1993m12) {
        drop region statefips
        rename state statecensus

        merge m:1 statecensus using $stategeocodes

        * deal with invalid state codes
        * invalid state census code = 3 in 1985m4
        if $date == tm(1985m4) {
            assert _merge == 3 if statecensus != 3
            replace statecensus = . if statecensus == 3
        }
        else assert _merge == 3
        drop _merge

        if $date >= tm(1989m1) assert statefips == stfips

        * ridiculous hack to pull in value labels for statecensus
        * which are not merged above
        drop statecensus
        rename statecensus_alt statecensus
    }
    if tm(1994m1) <= $date {
        replace statefips = gestfips
        merge m:1 statefips using $stategeocodes, assert(3) nogenerate
        if $date <= tm(2013m12) assert statecensus == gestcen
        assert region == gereg

        * ridiculous hack to pull in value labels for statefips
        * which are not merged above
        drop statefips
        rename statefips_alt statefips
    }
}

lab var statefips "State - FIPS code"
notes statefips: 1978-1993, derived from Unicon state census code: state
notes statefips: 1994-present, CPS: gestfips
Figure creation
sum year
keep if year == r(max)
gegen tag = tag(statefips)
keep if tag == 1
keep statefips tag

decode statefips, gen(stateabb)
tostring statefips, gen(statefipsstring)
gen labelvar = stateabb + " - " + statefipsstring

maptile tag, geo(statehex) geoid(statefips) labelhex(labelvar) ///
  twopt(graphregion(color(white)) ///
    plotregion(color(white)) ///
    legend(off))

graph export ${variableimages}statefips_titleimage.svg, replace