楼主: innerper
5954 7

如何用SAS只保留某个变量的1%到99%的数据,小于1%或大于99%的全部替换成缺失值?急求 [推广有奖]

  • 5关注
  • 1粉丝

已卖:979份资源

博士生

70%

还不是VIP/贵宾

-

威望
0
论坛币
954 个
通用积分
186.5857
学术水平
14 点
热心指数
20 点
信用等级
8 点
经验
8697 点
帖子
98
精华
0
在线时间
541 小时
注册时间
2015-3-6
最后登录
2022-2-22

楼主
innerper 发表于 2016-4-8 12:41:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有一个变量,想只保留1%-99%分位之间的数值,小于1%或大于99%的全部替换成缺失值,stata可以用winsor命令,请问SAS用什么命令?急求呀 大谢!!
二维码

扫码加我 拉你入群

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

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

关键词:缺失值 如何用 winsor Stata tata 如何

沙发
孤单的我们 发表于 2016-4-8 13:14:00
  1. proc means data=have p1 p99 noprint;
  2. output out=_mean_ P1=p1 p99=p99;
  3. var variable;
  4. run;

  5. data _null_;
  6.         set _mean_;
  7.         call symputx('p1',p1);
  8.         call symputx('p99',p99);
  9. run;

  10. data want;
  11.         set want;
  12.         if not(&p1<=temp<=&p99) then variable=.;
  13. run;
复制代码
已有 2 人评分经验 学术水平 热心指数 信用等级 收起 理由
李会超 + 100 + 2 精彩帖子
guanglei + 3 + 1 + 1 精彩帖子

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

藤椅
innerper 发表于 2016-4-8 13:25:49
孤单的我们 发表于 2016-4-8 13:14
您好,我大概看懂了。不过第二部分的程序是什么意思,具体能解释下吗?

板凳
孤单的我们 发表于 2016-4-8 13:37:11
innerper 发表于 2016-4-8 13:25
您好,我大概看懂了。不过第二部分的程序是什么意思,具体能解释下吗?
把1%和99%分位数做成宏变量,与原始值比较判断

报纸
innerper 发表于 2016-4-8 13:42:52
孤单的我们 发表于 2016-4-8 13:37
把1%和99%分位数做成宏变量,与原始值比较判断
我运行了下,第三步中temp好像不可以,我改成了if not(<=variable<=) then new_variable=.; else new_variable=variable;run; 可以了。是不是temp需要初始化?

地板
孤单的我们 发表于 2016-4-8 14:06:50
innerper 发表于 2016-4-8 13:42
我运行了下,第三步中temp好像不可以,我改成了if not(
temp换成你自己的变量variable,我漏掉了

7
innerper 发表于 2016-4-11 10:33:57
孤单的我们 发表于 2016-4-8 14:06
temp换成你自己的变量variable,我漏掉了
嗯,非常感谢~~~

8
dogmamongo 发表于 2016-4-20 16:46:35
孤单的我们 发表于 2016-4-8 13:14
该语法要小心  只是用于横截面的数据
如果 数据是面板数据
需要每个时间点做缩尾处理

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 05:11