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