楼主: 168lijijie
4743 6

如何批量删除缺失的观测值 [推广有奖]

  • 0关注
  • 0粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
0.0042
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
876 点
帖子
28
精华
0
在线时间
45 小时
注册时间
2009-12-19
最后登录
2019-10-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请教高手:
        我现在要处理一数据集(变量非常多),里面既有字符型数据(包括日期)也有数值型数据,我采用以下SAS程序,会出现提醒:
data mydata;
set mydata;
if missing(max(of a1--a100 b1--b12 )) then delete;
run;
总是会出现提醒信息,具体如下:
NOTE: 字符值已转换为数值,位置:(行:列)。
      551:26   551:48   551:63   551:80
NOTE: 无效的数值数据 date1='2013-01-08' 出现在行 551 列 26。
NOTE: 无效的数值数据 doe2='2013-01-14' 出现在行 551 列 63。
NOTE: 无效的数值数据 doe3='2013-01-14' 出现在行 551 列 63。
NOTE: 无效的数值数据 doe4='2013-01-14' 出现在行 551 列 63。
NOTE: 无效的数值数据 doe5='2013-01-14' 出现在行 551 列 63。
NOTE: 无效的数值数据 doe6='2013-01-14' 出现在行 551 列 63。
NOTE: 无效的数值数据 bul1='2013-01-15' 出现在行 551 列 80。
NOTE: 无效的数值数据 abns1='肝脏囊肿' 出现在行 551 列 80。
NOTE: 无效的数值数据 chr1='2013-01-15' 出现在行 551 列 80。
NOTE: 无效的数值数据 elec1='2013-01-14' 出现在行 551 列 80。

请教各位,如何才能消除这种提示信息呢,是不是程序写的不对?
二维码

扫码加我 拉你入群

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

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

关键词:观测值 missing delete 字符型数据 sas程序 如何

沙发
gyqznufe 发表于 2013-8-22 12:09:03 |只看作者 |坛友微信交流群
可不可以逐一按各变量排序,然后就可以删除缺省值了!
知常容·容乃公·公乃王!
创新源于学、问、思、行、果!
言传身教,请用事实与数据说话!
舍而得之:福、禄、寿、喜、财

使用道具

藤椅
boe 发表于 2013-8-22 13:50:33 |只看作者 |坛友微信交流群
猜是删除变量值均为缺失的记录
if cmiss(of _all_)=变量个数 then delete;
Gorgeous girl , I love !

使用道具

板凳
168lijijie 发表于 2013-8-22 15:38:02 |只看作者 |坛友微信交流群
不行吧,数据类型不一致,而且变量名没有规则,为方便我才简单的这样写的

使用道具

报纸
吕小布韦 发表于 2013-8-22 16:13:59 |只看作者 |坛友微信交流群
你看看你的mydata的数据集里面,a1-a100或者b1-b12这112个变量中,是不是有些是用note里面显示的doe1-doe6, date1...等变量运算得来的. 看note的意思,里面提到的变量都是字符型变量,但是在进一步使用的过程中被当成数字型变量了.但是原数据集应该没问题,初步判断是执行max运算时当成数值型变量了.可否发一下原mydata中的数据.

使用道具

地板
tangliang0905 发表于 2013-8-22 22:54:43 |只看作者 |坛友微信交流群
because there are some character variables, which can not be used for MAX function.

使用道具

7
bobguy 发表于 2013-8-24 06:09:01 |只看作者 |坛友微信交流群
The notation of a1--a100 is quite different from a1-a100.

I believe you should use a1-a100 ---meaning a1 , a2, ..., a100

while a1--a100 means all variables between a1 through a100 in Program data vector.

See example below,
data t1;
  retain a1-a3 1 c 'c' a4-a6 2;
  output;
run;

proc print;run;

data t2;
  set t1;
  if missing(max(of a1--a6)) then delete;
  run;

proc print;run;
  
data t2;
  set t1;
  if missing(max(of a1-a6)) then delete;
  run;

  proc print;run;

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-13 06:50