楼主: CooKieBell
1799 2

[数据管理求助] 请问drop和keep命令是否可以同时进行呢? [推广有奖]

  • 0关注
  • 0粉丝

小学生

85%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
56 点
帖子
5
精华
0
在线时间
8 小时
注册时间
2021-6-21
最后登录
2021-7-1

楼主
CooKieBell 发表于 2021-6-22 00:10:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我的代码是这样的:
forvalues t = 1/100 {
keep if Country == Country[`t'] & Country_Twin_n == Country_Twin_n[`t']
drop if Benchmark == Benchmark[`t'] & Pair_n != Pair_n[`t']

………………
}
然而当执行了第一个keep命令的时候,因为有observations被删减了,所以该循环关注的那个observation的行数很可能就不再是`t'了,这样就难以达到我想要的目的

请问大神们,有没有可能让这个keep和drop同时进行呢?

还有,我也可以不用行数来定位。在我的原始dataset里面,有一个变量是Number,就是和行数相对应的,第n行的Number的取值就是n。也就是说假如先drop掉了一些observations的话,Number会大于当前的行数,假如该观测值之前有被drop掉的。
drop和keep可不可以有更复杂点的条件呢?比如 drop if 某个variable的取值大于(或等于,或小于)Number取值为k的那条记录的对应的variable取值?
举个例子,比如有两个variable:Number和Price。可不可以keep或drop价格高于4号观测值的所有观测值?

希望我把问题表述清楚了,提前感谢!
二维码

扫码加我 拉你入群

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

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

关键词:keep命令 keep drop observations observation

沙发
wdlbcj 学生认证  发表于 2021-6-22 13:49:13
那先根据这些条件生成indicator吧,比如keep中的条件下 生成一个指示变量;然后再根据drop中的条件生成新的指示变量 最后对指示变量进行操作

藤椅
CooKieBell 发表于 2021-6-22 20:21:41
wdlbcj 发表于 2021-6-22 13:49
那先根据这些条件生成indicator吧,比如keep中的条件下 生成一个指示变量;然后再根据drop中的条件生成新的 ...
嗯嗯谢谢,我后来解决了,我就先把想要针对的observation的相关变量的值设置成了暂元,这个就不会受到行数改变的影响了。

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

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