楼主: firefox29
6219 11

如何找出存在空值的变量列 [推广有奖]

  • 11关注
  • 1粉丝

博士生

28%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.2251
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
3694 点
帖子
131
精华
0
在线时间
305 小时
注册时间
2012-1-23
最后登录
2023-6-20

楼主
firefox29 发表于 2014-3-12 10:22:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我稍微搜索了一下,能够解决,删除、标记或输出空值所在观测;但我希望能够找出空值所在变量,因为变量很多,不可能一个一个写;比如:
data sample;
input a1-a7833;
datalines;
....
;
run;

还求指教,谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:Sample Lines Input Data AMPL 如何

沙发
郭腾 发表于 2014-3-12 10:34:13
你不写出变量咋知道哪条观测有空值呢,你咋输出呢,

藤椅
firefox29 发表于 2014-3-12 11:05:07
郭腾 发表于 2014-3-12 10:34
你不写出变量咋知道哪条观测有空值呢,你咋输出呢,
用array arrayname{*} _all_;可以找出空值所在观测并输出;
但是我不知道如何找到空值所在列,即所在变量;

板凳
sosalitou 发表于 2014-3-12 11:20:51 来自手机
Keep 或者 drop

报纸
firefox29 发表于 2014-3-12 12:26:31
sosalitou 发表于 2014-3-12 11:20
Keep 或者 drop
.....还没找到缺失值所在列,怎么keep drop

地板
郭腾 发表于 2014-3-12 12:50:15
firefox29 发表于 2014-3-12 11:05
用array arrayname{*} _all_;可以找出空值所在观测并输出;
但是我不知道如何找到空值所在列,即所在变量 ...
把数据转置一下就实现了
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
firefox29 + 1 + 1 + 1 观点有启发

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

7
firefox29 发表于 2014-3-14 09:09:38
郭腾 发表于 2014-3-12 12:50
把数据转置一下就实现了
观测可能有十几万条,您确定数据集可以有十几万个变量吗?

8
郭腾 发表于 2014-3-14 09:12:57
firefox29 发表于 2014-3-14 09:09
观测可能有十几万条,您确定数据集可以有十几万个变量吗?
转置完了,就相当于有多少个变量就有多少个观测,然后问题就转化为只输出含有缺失值的观测了

9
yongyitian 发表于 2014-3-14 09:21:53
  1. data a;
  2.    array x{10} x1-x10;
  3.    array ch{10} $ c1-c10;
  4.    string = 'a b c d e f g h i j k';
  5.    do i = 1 to 5;
  6.       do j = 1 to dim(x);
  7.          x[j] = round(ranuni(12345), 0.01);
  8.          if x[j] < 0.2 then call missing(x[j]);
  9.       end;
  10.       do j = 1 to dim(ch);
  11.          k = int(ranuni(12345)*10);
  12.          ch[j] = scan(string, k);
  13.          if k in (3, 5, 8) then call missing(ch[j]);
  14.       end;
  15.       output;
  16.     end;
  17.     drop i j k string;
  18. run;

  19. data b;
  20.    set a;
  21.    length missVar $30;
  22.    array num{*} _numeric_;
  23.    array char{*} _character_;
  24.      do i = 1 to dim(num);
  25.        if missing(num[i]) then call catx('_', missVar, vname(num[i]));
  26.      end;
  27.      do i = 1 to dim(char);
  28.        if missing(char[i]) then call catx('_', missVar, vname(char[i]));
  29.      end;
  30. drop i;
  31. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
firefox29 + 1 + 1 + 1 热心帮助其他会员,观点有启发

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

10
mingfeng07 学生认证  发表于 2014-3-14 09:33:32
firefox29 发表于 2014-3-14 09:09
观测可能有十几万条,您确定数据集可以有十几万个变量吗?
这个得看你电脑限制了,一般来说几万变量没问题,我刚刚用我电脑试了一下跑100万的变量数据,还是可以运行的,只是时间稍微有点长,花了一分钟左右才跑完。
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

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

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