konvertera mellan numeriska och Teckenvariabeli

konvertera mellan numeriska variabler och teckenvariabler är ett av de vanligaste problemen vid bearbetning av dataset. Den här artikeln förklarar hur du gör denna konvertering korrekt och effektivt.

numeriskt tecken till tecken

Antag att det finns en importerad dataset med namnet filings, där cik lagras som en numerisk variabel som visas nedan:

cik filtyp 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

eftersom cik har olika siffror, för att konvertera den numeriska cik till en teckenvariabel, är den naturliga proceduren att padda den med ledande nollor. Till exempel är cik (Central Index Key) i sig ett 10-siffrigt nummer som används av SEC.

i SAS, konvertera numerisk variabel till sträng med ledande nollor (förutsatt att 10-siffrig fast längd) görs via PUT() funktion:

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

tips

PUT()funktionen fungerar också i PROC SQL.

den genererade cik_char variabeln är av format och informat ., och datauppsättningen blir:

cik_char filtyp 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

i STATA, konvertera numerisk variabel till sträng med ledande nollor (förutsatt att 6-siffrig fast längd) kan uppnås via funktionen string().

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

tecken till numeriskt språk

i SAS används funktionen INPUT() för att konvertera en teckenvariabel till en numerisk:

1
var_numeric = input(var_char, best12.);

i STATA kan denna omvandling göras via antingen real() funktion eller destring kommando.

1
gen num_var = real(char_var);

funktionen real() fungerar på en enda variabel. destring kommandot kan konvertera alla teckenvariabler till numeriska på en gång.

1
destring, repalce

Varning

om en teckenvariabel har icke-numeriska tecken i den, kommer den inte att konverteras. I ett sådant fall kan du välja att använda kommandot encode, även om det faktiskt genererar kategorier.

en mer detaljerad förklaring med exempel finns på stats.idre.ucla.edu

senaste ändring: 22 maj 2020

You might also like

Lämna ett svar

Din e-postadress kommer inte publiceras.