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