楼主: yhd724262263
2710 5

[编程问题求助] stata怎么打乱原有的id分组序号 [推广有奖]

  • 2关注
  • 2粉丝

讲师

48%

还不是VIP/贵宾

-

威望
0
论坛币
1532 个
通用积分
0.0212
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1394 点
帖子
42
精华
0
在线时间
1000 小时
注册时间
2020-1-1
最后登录
2024-9-5

楼主
yhd724262263 在职认证  学生认证  发表于 2021-9-9 14:09:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据格式:
id   year   x1 x2...
1   2005
1   2006

1   2007
2   2005
2   2006

2   2007

3  2005

3   2006

3   2007
.
.
.
100  2005
100  2006
100  2007

如何将原有的id(1-100)序号打乱(比如说原来的1随机变成19,原来的99随机变成77),其他变量(year x1 x2...)不变,以便进行安慰剂检验。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata tata year 数据格式 ear Stata Method、安慰剂检验、Stata Stata里数据排序

沙发
1226407869 学生认证  发表于 2021-9-9 19:32:14 来自手机
yhd724262263 发表于 2021-9-9 14:09
数据格式:
id   year   x1 x2...
1   2005
你可以生成随机数呀。然后排序就好了。

藤椅
橘子虎 发表于 2023-5-10 10:04:01
1226407869 发表于 2021-9-9 19:32
你可以生成随机数呀。然后排序就好了。
小天才

板凳
1226407869 学生认证  发表于 2023-5-25 16:43:33
橘子虎 发表于 2023-5-10 10:04
小天才
大哥,你这亲的我有点儿害怕。。哈哈。

报纸
sunbobo 发表于 2024-7-10 21:28:55
1226407869 发表于 2021-9-9 19:32
你可以生成随机数呀。然后排序就好了。
生成随机数排序也会让x1,x2的顺序发生变化呀

地板
赵安豆 发表于 2024-12-10 22:18:49
要在Stata中打乱原有的`id`分组序号,可以使用以下步骤:

首先,生成一个新的随机变量作为新的`id`。我们可以使用`runiform()`函数来创建一个在0和1之间的均匀分布的随机数,并利用这个随机数对原来的`id`进行排序。

但是,在此之前,我们先需要设置随机数种子(seed),以确保每次运行代码时都可以得到相同的随机结果。这对于研究的可重复性非常重要。

下面就是具体的操作步骤:

```stata
* 假设你已经有了数据集,首先设置随机数种子
set seed 12345

* 确保你的数据是根据原id排序的
sort id

* 使用runiform()生成一个0-1之间的随机变量
gen rand = runiform()

* 根据新的随机值和原id重新排序,使得每个id与一个新的序号对应
sort rand id

* 保留随机顺序,并删除随机数列
drop rand

* 然后你可以创建一个新id列,从1开始给每一行赋值
gen new_id = _n

* 检查结果(可选)
list id year x1 x2 new_id in 1/5
```

这段代码执行完后,`new_id`变量就会是随机分配的新的序号。请注意,在实际的数据集中,你可能需要根据数据的具体情况调整代码。

以上步骤将保证你的原始数据`year`, `x1`, `x2...`等其他列不受影响,并且每个`id`都被重新随机分配了一个新序列号。这个新序列号可以用于进行安慰剂检验(placebo test)。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-4 17:19