Převod Mezi Číselnými a Charakter Proměnné¶

Převod mezi číselnými a charakter proměnných je jedním z nejčastěji se vyskytujících problémů při zpracování souborů údajů. Tento článek vysvětluje, jak tuto konverzi provést správně a efektivně.

Číselný Znak¶

Předpokládat, že je importovaný datový soubor jménem filings, kde cik je uložen jako číselné proměnné, jak je uvedeno níže:

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

Protože cik je z různých číslic, převést číselné cik charakter proměnné, přírodní postup je podložka s úvodní nuly. Například, cik (Centrální Index Klíč) sám o sobě je 10-místné číslo, které se používá u SEC.

V SAS, převést číselné proměnné na řetězec s úvodní nuly (za předpokladu, že 10-místné pevné délky) se provádí pomocí PUT() funkce:

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

Tip

PUT() funkce funguje také v PROC SQL.

generovaná proměnná cik_char má formát a informat . a datová sada se stává:

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

V STATA, převést číselné proměnné na řetězec s úvodní nuly (za předpokladu, 6-místný pevné délky) může být dosaženo prostřednictvím string() funkce.

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

Znak Číselné¶

V SAS, konverze znak, proměnná číselné jeden používá INPUT() funkce:

1
var_numeric = input(var_char, best12.);

V STATA, tato konverze může být provedeno buď přes real() funkce nebo destring příkaz.

1
gen num_var = real(char_var);

real() funkce funguje na jedné jediné proměnné. destring příkaz může převést všechny znakové proměnné na číselné najednou.

1
destring, repalce

Varování

Pokud postava proměnná má non-číselné znaky v něm, pak to nebude převeden. V takovém případě se můžete rozhodnout použít příkaz encode, i když ve skutečnosti generuje Kategorie.

více podrobné vysvětlení s příklady je k dispozici na stats.idre.ucla.edu

Poslední aktualizace: 22. Května 2020

You might also like

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.