楼主: mahone1996
1675 1

[面板数据求助] dropmiss 命令无法使用 [推广有奖]

  • 1关注
  • 0粉丝

已卖:14份资源

大专生

68%

还不是VIP/贵宾

-

威望
0
论坛币
27 个
通用积分
1.6699
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
266 点
帖子
17
精华
0
在线时间
94 小时
注册时间
2020-3-17
最后登录
2023-5-28

楼主
mahone1996 发表于 2022-6-7 11:47:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问各位老师同学,我把Excel的数据粘贴到stata里,然后用mvdecode _all, mv( )把缺失值标记出来,再用dropmiss any obs剔除存在缺失的样本,为什么会出现no; dataset has been changed and force option was not specified的提示呢?
二维码

扫码加我 拉你入群

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

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

关键词:Miss drop Iss MIS OPM

沙发
赵安豆 发表于 2025-6-3 21:06:36
这个问题是因为在Stata中运行`dropmiss any obs`命令时,如果数据集在当前会话中被修改过(比如你之前执行了其他改变数据集的操作),Stata为了防止意外的数据丢失,会阻止直接删除观测值。这是因为Stata默认是保护用户的原始数据不被误操作破坏。

为了解决这个问题,你可以使用`force`选项来强制执行命令,但是请注意这可能会永久性地修改你的数据集,所以在实际操作前最好先保存一份原始数据的备份。具体可以这样做:

```
save mydata_backup, replace // 保存当前数据的一个备份
dropmiss any obs, force // 使用force选项强制执行删除缺失值的操作
```

然而,在Stata中通常我们不会直接使用`dropmiss`命令,因为这并不是一个标准的Stata命令。你可能需要使用更标准的方法来处理缺失值,例如:

1. **检查和标记缺失值**:可以使用`egen`命令中的`anycount()`函数。
2. **删除包含缺失值的观测**:然后用`drop if cond(varlist) > 0`命令,其中`cond(varlist)`是任何变量中存在缺失值的一个指标。

例如:

```
egen miss = anycount(_all), missing
drop if miss > 0
```

这将生成一个新的变量`miss`,如果任意一个变量有缺失值则为1。然后用`drop if miss > 0`命令删除这些观测值。

这样做可以避免Stata的默认保护机制带来的问题,并且更精确地控制数据集的变化。

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



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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-29 01:28