计数字符串变量中出现的值

时间:2018-09-05 15:05:33

标签: string count stata

在此示例中,我怎么知道每个变量中有0、1和2个?

example

1 个答案:

答案 0 :(得分:1)

您似乎想计算每个观测中每个数字的出现次数。

您可以执行以下操作:

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 |
     +-----------------------+