楼主: jianlamhua
13494 16

所有变量winsor或删除缺失数据 [推广有奖]

  • 0关注
  • 1粉丝

大专生

70%

还不是VIP/贵宾

-

威望
0
论坛币
391 个
通用积分
0.0019
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
818 点
帖子
62
精华
0
在线时间
20 小时
注册时间
2007-7-5
最后登录
2018-1-11

楼主
jianlamhua 发表于 2009-4-10 15:48:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

STATA中,删除所有变量中的缺失数据,

或对所有变量(或其中第X个变量到第Y个变量)winsor,怎么处理?

一个一个变量进行可以,可如果变量很多,又是针对所有变量,有没有什么简单方法呀?

谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:winsor 缺失数据 wins SOR Win 数据 变量 缺失 删除 winsor

沙发
sungmoo 发表于 2009-4-10 17:30:00

egen m=rowmiss(_all)

drop if m>0

drop m

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 100 + 10 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 10  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

藤椅
jianlamhua 发表于 2009-4-10 19:57:00

哈哈,好开心啊,谢谢版主!

对于winsor有没什么好办法?

板凳
jianlamhua 发表于 2009-4-10 21:58:00

如果在所有变量名前加上前缀X呢?

即原变量为a b c

最后变为Xa Xb Xc

尤其是变量多的时候,一个一个加很麻烦

再次谢谢

报纸
sungmoo 发表于 2009-4-10 22:20:00
以下是引用jianlamhua在2009-4-10 21:58:00的发言:如果在所有变量名前加上前缀X呢?

 
foreach i of varlist _all {
ren `i' x`i'
}

地板
sungmoo 发表于 2009-4-10 22:27:00
winsor是什么意思?

7
jianlamhua 发表于 2009-4-11 01:15:00

谢谢了,呵呵

 winsor takes the non-missing values of a variable x ordered such that

        x_1 <= ... <= x_n

    and generates a new variable y identical to x except that the h highest
    and h lowest values are replaced by the next value counting inwards from
    the extremes:

        y_1, ... , y_h = y_(h + 1)

        y_n, ... , y_(n - h + 1) = y_(n - h)
就是对极端值的一种处理。

8
jianlamhua 发表于 2009-4-11 01:41:00

再请教一个问题,按照版主的思路,我对winsor做了同样的处理,可为什么不行呢?

foreach v of varlist _all {
winsor `v',gen(w`v') p(0.01)
}

结果窗口出错:“generate() should give new variable name”

我不知道错在什么地方,望赐教!谢谢。

9
sungmoo 发表于 2009-4-11 09:44:00
以下是引用jianlamhua在2009-4-11 1:15:00的发言:winsor takes the non-missing values of a variable x ordered such that x_1 <= ... <= x_n and generates a new variable y identical to x except that the h highest and h lowest values are replaced by the next value counting inwards from the extremes: y_1, ... , y_h = y_(h + 1); y_n, ... , y_(n - h + 1) = y_(n - h). 就是对极端值的一种处理。

 
foreach i of var _all{
g x`i'=`i'
sort `i'
scalar min=`i'[21]
scalar max=`i'[_N-20]
replace x`i'=min if _n<21
replace x`i'=max if _n>_N-20
}

*设h=20

10
jianlamhua 发表于 2009-4-11 14:00:00

再次表示谢谢。

还是有个疑问,版主的下列命令

“scalar min=`i'[21]
scalar max=`i'[_N-20]
replace x`i'=min if _n<21
replace x`i'=max if _n>_N-20”

实际上应该是winsor命令的内部计算过程。

因为我一般直接用winsor(因为有现成的命令,方便,呵呵),那我上面的命令错在什么地方了呢?

TKS A LOT!

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

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