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 |
|
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 |
|
tecken till numeriskt språk
i SAS används funktionen INPUT()
för att konvertera en teckenvariabel till en numerisk:
1 |
|
i STATA kan denna omvandling göras via antingen real()
funktion eller destring
kommando.
1 |
|
funktionen real()
fungerar på en enda variabel. destring
kommandot kan konvertera alla teckenvariabler till numeriska på en gång.
1 |
|
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