2015-08-05 13 views
5

W zestawie danych ankiety mam zmienną łańcuchową (typ: str244) z odpowiedziami jakościowymi. Chcę policzyć liczbę znaków w każdej odpowiedzi/ciągu i wygenerować nową zmienną zawierającą ten numer.Generowanie zmiennej zawierającej liczbę znaków w zmiennej łańcuchowej

Korzystanie z Już policzyłem liczbę słów używając nwords, ale nie mogę znaleźć odpowiednika dla zliczania znaków.

PRZYKŁAD:

egen countvar = nwords(stringvar) 

gdzie countvar to nowa nazwa zmiennej i stringvar jest zmienna ciąg.

Czy istnieje taka funkcja egen do liczenia znaków?

+0

Funkcja 'wordcount()' w Stata sprawia, że ​​starsze dodatki 'nwords()' redundantne. Uwaga 'egenmore' jest pobierany za pomocą' ssc inst egenmore'. –

+0

Pomoc dla 'egenmore' wskazuje na' wordcount() '. N.B. 'nwords()' (napisane dla Stata 6) jest bardzo wolne. –

+0

Dziękuję za wzmiankę o tym. 'gen countvar = wordcount (stringvar)' działa jak urok. Nie wiedziałem, że 'wordcount' został użyty z' gen', a nie 'egen'. Idealny! – harre

Odpowiedz

6

Nie ma funkcji egen, ponieważ ma długą [sic] funkcję ścisłego sensu, aby to zrobić. W ostatnich wersjach Stata, funkcja nazywa strlen() ale starsza nazwa length() nadal działa:

. sysuse auto 
(1978 Automobile Data) 

. gen l1 = length(make) 

. gen l2 = strlen(make) 

. su l? 

    Variable |  Obs  Mean Std. Dev.  Min  Max 
-------------+--------------------------------------------------------- 
      l1 |   74 11.77027 2.155257   6   17 
      l2 |   74 11.77027 2.155257   6   17 

Zobacz help functions i (e.g.) this tutorial column.

Powiązane problemy