Muunna numeeristen ja Merkkimuuttujien välillä¶

numeeristen ja merkkimuuttujien välinen muuntaminen on yksi useimmin kohdatuista ongelmista aineistoja käsiteltäessä. Tässä artikkelissa kerrotaan, miten tämä muuntaminen oikein ja tehokkaasti.

numeerinen merkiksi¶

Oletetaan, että on tuotu tietojoukko nimeltä filings, jossa cik on tallennettu numeerisena muuttujana kuten alla on esitetty:

cik file_type pvm
1000229 8-K 2011-09-30
100591 8-K 2006-05-11
100826 8-K 2009-06-30
93542 8-K 2007-01-25

koska cik on eri numeroinen, jotta numeerinen cik voidaan muuntaa merkkimuuttujaksi, luonnollinen menettely on padota se johtavilla nollilla. Esimerkiksi cik (Central Index Key) itsessään on SEC: n käyttämä 10-numeroinen luku.

SAS: ssä numeerinen muuttuja muunnetaan merkkijonoksi, jossa on johtavat nollat (olettaen, että 10-numeroinen kiinteä pituus) tehdään PUT() funktion kautta:

123
data filings(drop=cik); set filings; cik_char = put(cik, z10.); run;

kärki

PUT() funktio toimii myös PROC SQL.

luotu cik_char muuttuja on muotoa ja tietoa ., ja tietokokonaisuudesta tulee:

cik_char file_type pvm
0001000229 8-K 2011-09-30
0000100591 8-K 2006-05-11
0000100826 8-K 2009-06-30
0000093542 8-K 2007-01-25

STATASSA numeerinen muuttuja voidaan muuntaa merkkijonoksi, jossa on johtavat nollat (olettaen 6-numeroisen kiinteän pituuden) string() funktion avulla.

1
gen char_var = string(num_var,"%06.0f")

merkistä numeeriseksi¶

SAS-järjestelmässä merkkimuuttujan muuntaminen numeeriseksi käyttää INPUT() funktiota:

1
var_numeric = input(var_char, best12.);

STATASSA tämä muunnos voidaan tehdä joko real() funktion tai destring komennon kautta.

1
gen num_var = real(char_var);

funktio real() toimii yhdellä muuttujalla. destring komento voi muuntaa kaikki merkkimuuttujat numeerisiksi yhdellä kertaa.

1
destring, repalce

Varoitus

jos merkkimuuttujassa on ei-numeerisia merkkejä, sitä ei muunneta. Tällöin voit käyttää komentoa encode, vaikka se itse asiassa luo luokkia.

tarkempi selvitys esimerkein on saatavilla osoitteessa stats.idre.ucla.edu

viimeinen päivitys: 22. toukokuuta 2020

You might also like

Vastaa

Sähköpostiosoitettasi ei julkaista.