在Stata中拆分值并将其保存在新变量中

在Stata中拆分值并将其保存在新变量中,stata,Stata,我有一个数值变量,其值类似于以下系统 1 2 12 21 二, 我想分割长度大于1的值,并将值的后半部分放入 在另一个变量中 因此,第二个变量的值为: . . 2 1 理论上,我只会使用一个简单的replace语句,但我正在寻找一个代码/循环,它会 识别两位数的值并自动拆分,并将其保存在第二个变量中。因为随着时间的推移,会有更多的观察结果被添加,我无法为>10k的案例手动执行此任务。这里有一种方法: clear input foo 1 2 12 21 2 end generate fo

我有一个数值变量,其值类似于以下系统

1
2
12
21
二,

我想分割长度大于1的值,并将值的后半部分放入 在另一个变量中

因此,第二个变量的值为:

.
.
2
1

理论上,我只会使用一个简单的
replace
语句,但我正在寻找一个代码/循环,它会 识别两位数的值并自动拆分,并将其保存在第二个变量中。因为随着时间的推移,会有更多的观察结果被添加,我无法为>10k的案例手动执行此任务。

这里有一种方法:

clear 
input foo 
1
2
12
21
2
end 

generate foo1 = floor(foo/10)
generate foo2 = mod(foo, 10)

list 

     +-------------------+
     | foo   foo1   foo2 |
     |-------------------|
  1. |   1      0      1 |
  2. |   2      0      2 |
  3. |  12      1      2 |
  4. |  21      2      1 |
  5. |   2      0      2 |
     +-------------------+
更多关于这些函数的信息,以及

如果缺少第一部分的零,则

replace foo1 = . if foo1 == 0 
或(一次完成)

该代码也适用于任何三位数或更多的参数

generate foo1 = floor(foo/10) if foo >= 10