楼主: dandan_9075
4855 13

缺失值替代 [推广有奖]

  • 3关注
  • 2粉丝

已卖:1份资源

硕士生

66%

还不是VIP/贵宾

-

威望
0
论坛币
36 个
通用积分
2.6381
学术水平
1 点
热心指数
4 点
信用等级
1 点
经验
2164 点
帖子
148
精华
0
在线时间
132 小时
注册时间
2012-3-12
最后登录
2025-12-4

楼主
dandan_9075 在职认证  发表于 2012-3-27 09:57:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
现有一个数据集aa,里面有30个变量(x1-x30),一些变量的缺失值是用.表示的,而一些缺失值是直接留空,我现在想把所有的用.或者直接留空的缺失值全部替代为0,请问怎么实现?
二维码

扫码加我 拉你入群

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

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

关键词:缺失值 数据集

沙发
bbwade 发表于 2012-3-27 10:03:18
先转换成stata数据格式,再用mvencode _all, mv(0)

藤椅
bbwade 发表于 2012-3-27 10:17:09
不好意思,没看清是SAS版

板凳
sl122113 发表于 2012-3-27 15:13:03
if var-name=. then var-name=0;
if var-name=' ' then var-name=0;
Let Our Life Be Magic And Open

报纸
wh_wing 发表于 2012-3-27 15:25:33
楼上的改了一下:
if var-name=. then var-name=0;
else if var-name=' ' then var-name=0;
用分支效率会高一些!

地板
priss111 发表于 2012-3-27 16:15:28
wh_wing 发表于 2012-3-27 15:25
楼上的改了一下:
if var-name=. then var-name=0;
else if var-name=' ' then var-name=0;
if ...;
else if ..;
是针对同一个变量或同一组具有逻辑关系的变量间.

7
gaotao0727 发表于 2012-3-27 16:53:23
把30个变量分别赋给一组宏变量序列,再编写一个宏,分别判断每个宏变量是否有.或者空值,再赋值,这样会简便一些~~~~
衣带渐宽终不悔,为伊消得人憔悴~~

8
dandan_9075 在职认证  发表于 2012-3-27 19:33:06
gaotao0727 发表于 2012-3-27 16:53
把30个变量分别赋给一组宏变量序列,再编写一个宏,分别判断每个宏变量是否有.或者空值,再赋值,这样会简便 ...
这个貌似很高深,我是初学者,还没接触过宏~~~~~

9
木子星 发表于 2012-3-27 22:27:09
楼主  30个变量全是数值型的?
我写了一个
不知道你能用不?  缺失为点的变量是数值型对待的
                  缺失为空格的变量是字符型对待的
%macro trans(i);
data oringal;
set oringal;*原始数据集;
if var&i eq . then var&i=0;
else if var&i=' ' then var&i='0';
run;
%mend trans;
%macro main;
%let j=1;
%do i=1 to 30;
  %trans(&j);
  %let j=%eval(&j+1);
%end;
%mend main;
%main;

10
dandan_9075 在职认证  发表于 2012-3-28 11:53:25
木子星 发表于 2012-3-27 22:27
楼主  30个变量全是数值型的?
我写了一个
不知道你能用不?  缺失为点的变量是数值型对待的
多谢 高手如云啊

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-5 15:04