首页 > 解决方案 > 计算字符串变量中出现的值

问题描述

在这个例子中,我怎么知道每个变量中有多少个 0、1 和 2?

例子

标签: stringcountstata

解决方案


看起来您想计算每个观察中每个数字的出现次数。

您可以按如下方式执行此操作:

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

推荐阅读