楼主: shyb_17
4157 6

[数据管理求助] 怎么批量删除有0 或 字符型缺失值的列 [推广有奖]

  • 2关注
  • 1粉丝

已卖:169份资源

大专生

8%

还不是VIP/贵宾

-

威望
0
论坛币
1397 个
通用积分
0
学术水平
15 点
热心指数
15 点
信用等级
15 点
经验
2160 点
帖子
19
精华
0
在线时间
50 小时
注册时间
2014-2-27
最后登录
2022-1-15

楼主
shyb_17 学生认证  发表于 2017-3-15 13:20:29 |AI写论文
10论坛币
如题 有一千多只股票,这是事件窗口内取出的收益率,怎么批量删除有0 或 字符型缺失值的列呢
新手,不太会判断这一列里是否包含某值  求各位不吝赐教
论坛币不多 表谢意~

1.JPG (177.42 KB)

1.JPG

最佳答案

destiny10 查看完整内容

有个笨一点的办法,先计数:count if var==0来看这个变量里面含不含0,如果含的话再写一行drop var
关键词:缺失值 字符型 论坛币 收益率 stata 数据处理

沙发
destiny10 发表于 2017-3-15 13:20:30
shyb_17 发表于 2017-3-15 23:00
谢谢你的回复~我试了一下有错误是 invalid syntax

想请教一下,我不是要整列数据都为0才删,是只有一列中 ...
有个笨一点的办法,先计数:count if var==0来看这个变量里面含不含0,如果含的话再写一行drop var
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
shyb_17 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
destiny10 发表于 2017-3-15 17:43:36
drop if var==.
drop if var==0嗯,这个是删行的
drop var if (var==.)试一下

板凳
shyb_17 学生认证  发表于 2017-3-15 23:00:34 来自手机
destiny10 发表于 2017-3-15 17:43
drop if var==.
drop if var==0嗯,这个是删行的
drop var if (var==.)试一下
谢谢你的回复~我试了一下有错误是 invalid syntax

想请教一下,我不是要整列数据都为0才删,是只有一列中包含有0就删掉这列变量。那直接用var==0似乎不行?

报纸
shyb_17 学生认证  发表于 2017-3-22 11:23:33
destiny10 发表于 2017-3-15 13:20
有个笨一点的办法,先计数:count if var==0来看这个变量里面含不含0,如果含的话再写一行drop var
谢谢~这个count if 可以计算每列变量有几个为0的观测值,然后我需要删除个数大于0的列变量,但是我的这个循环第三句drop命令系统提示invalid syntax,不知道是为什么
foreach v of x601688-x2132{
count if `v'==0
drop `v' if r(N)>0
}

地板
destiny10 发表于 2017-3-22 17:57:08
shyb_17 发表于 2017-3-22 11:23
谢谢~这个count if 可以计算每列变量有几个为0的观测值,然后我需要删除个数大于0的列变量,但是我的这个 ...
这个看上去是没有问题的,这个我也不太清楚啦。

7
夏目贵志 发表于 2017-3-23 00:03:37
shyb_17 发表于 2017-3-22 11:23
谢谢~这个count if 可以计算每列变量有几个为0的观测值,然后我需要删除个数大于0的列变量,但是我的这个 ...
drop不能这么用。可以比如
local n=r(N)
if `n'>0 {
drop `v'
}

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

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