我正在尝试创建一个新的变量,以便它会像 1,1,2,2,3,3,4,4 .....意味着它会重复计算观察结果。 我目前的代码是这样的
gen newid = _n
replace newid = newid[_n+1] if mod(newid2,2) == 0
但是结果是1,1,3,3,5,5,7,7,......其中增量是2,即我只得到奇数。我该如何修改此代码?
答案 0 :(得分:2)
您可以尝试将ID变量除以2,然后使用Stata的ceil
函数将其强制为最接近的整数。
clear
set obs 50
gen newid = _n
gen newid2 = ceil(newid/2)
答案 1 :(得分:0)
您可以使用int(x)
功能。
此函数返回通过截断x获得的整数。
因此,int(5.2)为5.
如果您想要以下模式
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9
命令是
gen seq = int((_n-1)/2) +1