Подсчет вхождения значения в строковую переменную - PullRequest
0 голосов
/ 05 сентября 2018

В этом примере, как я могу узнать, сколько 0, 1 и 2 есть в каждой переменной?

example

1 Ответ

0 голосов
/ 05 сентября 2018

Похоже, вы хотите посчитать количество вхождений каждой цифры в каждом наблюдении .

Вы можете сделать это следующим образом:

clear

input str5 string
"22112"
"21012"
"22012"
"22022"
"21122"
"21112"
"21002"
"...0."
"...0."
"20002"
"..00."
"2..01"
"22212"
"21022"
"12212"
end

generate x0 = length(string) - length(subinstr(string, "0", "", .))
generate x1 = length(string) - length(subinstr(string, "1", "", .))
generate x2 = length(string) - length(subinstr(string, "2", "", .))

Идея здесь в том, чтобы вычислить разницу в длине строки после , исключающей каждый экземпляр интересующей цифры.

Приведенный выше фрагмент кода даст желаемый результат:

list

     +-----------------------+
     | string   x0   x1   x2 |
     |-----------------------|
  1. |  22112    0    2    3 |
  2. |  21012    1    2    2 |
  3. |  22012    1    1    3 |
  4. |  22022    1    0    4 |
  5. |  21122    0    2    3 |
     |-----------------------|
  6. |  21112    0    3    2 |
  7. |  21002    2    1    2 |
  8. |  ...0.    1    0    0 |
  9. |  ...0.    1    0    0 |
 10. |  20002    3    0    2 |
     |-----------------------|
 11. |  ..00.    2    0    0 |
 12. |  2..01    1    1    1 |
 13. |  22212    0    1    4 |
 14. |  21022    1    1    3 |
 15. |  12212    0    2    3 |
     +-----------------------+
...