Konwersja między zmiennymi numerycznymi i znakowymi jest jednym z najczęściej występujących problemów podczas przetwarzania zbiorów danych. W tym artykule wyjaśniono, jak wykonać tę konwersję poprawnie i skutecznie.
Liczba na znak¶
Załóżmy, że istnieje importowany zestaw danych o nazwie filings
, gdzie cik
jest przechowywana jako zmienna numeryczna, jak pokazano poniżej:
cik | file_type | Data |
---|---|---|
1000229 | 8-K | 2011-09-30 |
100591 | 8-K | 2006-05-11 |
100826 | 8-K | 2009-06-30 |
93542 | 8-K | 2007-01-25 |
ponieważ cik
ma różne cyfry, aby przekonwertować liczbę cik
na zmienną znakową, naturalną procedurą jest umieszczenie jej zerami wiodącymi. Na przykład, cik
(Centralny klucz indeksowy) sam jest 10-cyfrową liczbą używaną przez SEC.
w SAS, konwersja zmiennej numerycznej na ciąg z wiodącymi zerami (zakładając 10-cyfrową stałą długość) odbywa się za pomocą funkcji PUT()
:
123 |
|
Wskazówka
PUT()
funkcja działa również w PROC SQL
.
wygenerowana zmienna cik_char
ma format i informat .
, a zbiór danych staje się:
cik_char | file_type | Data |
---|---|---|
0001000229 | 8-K | 2011-09-30 |
0000100591 | 8-K | 2006-05-11 |
0000100826 | 8-K | 2009-06-30 |
0000093542 | 8-K | 2007-01-25 |
w STATA, konwersja zmiennej numerycznej na ciąg znaków z zerami wiodącymi (przy założeniu 6-cyfrowej stałej długości) może być osiągnięta za pomocą funkcji string()
.
1 |
|
znak Na numeryczny¶
w SAS, konwersja zmiennej znakowej na numeryczną wykorzystuje funkcję INPUT()
:
1 |
|
w STATA konwersję tę można wykonać za pomocą funkcji real()
lub polecenia destring
.
1 |
|
funkcja real()
działa na jednej zmiennej. destring
polecenie może konwertować wszystkie zmienne znakowe na liczbowe za jednym zamachem.
1 |
|
Ostrzeżenie
jeśli zmienna znakowa ma w sobie znaki nieliczbowe, to nie zostanie przekonwertowana. W takim przypadku możesz użyć polecenia encode
, chociaż w rzeczywistości generuje ono kategorie.
bardziej szczegółowe wyjaśnienie z przykładami dostępne jest pod adresem stats.idre.ucla.edu