楼主: tangtt
4384 3

[问答] _n_用法求解 [推广有奖]

  • 1关注
  • 0粉丝

硕士生

56%

还不是VIP/贵宾

-

威望
0
论坛币
1354 个
通用积分
2.8580
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
834 点
帖子
29
精华
0
在线时间
294 小时
注册时间
2009-7-25
最后登录
2024-5-15

楼主
tangtt 发表于 2014-10-29 17:12:30 |AI写论文
30论坛币
有数据集Develop_final2_char_location中属性location的值如下
1.jpg
希望通过程序计算将其中为空的location填上对应的值 这里假设空值的分布是和不为空的值分布一样 这里要计算填到空值里面的各项各自为多少 程序如下:
data lg.Develop_final2_char_location2;
    if _n_=1 then
        set lg.Develop_final2_char_location (keep=COUNT location where=(location eq '') rename=(count=mis_cnt));

    set lg.Develop_final2_char_location end=eof;
        where location ne '';

    allocation2=0.01*PERCENT*mis_cnt;
    allocation=round(allocation2,1);
    sum_allocation+allocation;
    if eof then
        allocation=mis_cnt-sum_allocation;
run;
结果如下:
2.jpg

我看不懂上面的程序 希望大虾解释一下 我觉得 结果中应该也有location为空的观测 为什么就没有呢?


最佳答案

sniperhgy 查看完整内容

楼主你好,因为其中有一句话 where location ne ''; 这句话的作用就是将location等于空值的obs干掉,所以结果里面的location都没有空值了。
关键词:ALLOCATION Location Develop percent cation sas 统计 求助
生于理想 死于现实 但 心中恒有天堂

沙发
sniperhgy 发表于 2014-10-29 17:12:31
楼主你好,因为其中有一句话
where location ne '';

这句话的作用就是将location等于空值的obs干掉,所以结果里面的location都没有空值了。

藤椅
suzhzh 发表于 2014-10-30 09:45:34
Thanks

板凳
tangtt 发表于 2014-10-30 10:48:54
我的理解是:
set lg.Develop_final2_char_location (keep=COUNT location where=(location eq '') rename=(count=mis_cnt));
该步骤 主要是建立了一个新的列mis_cnt  并将第一列写到pvd中

set lg.Develop_final2_char_location end=eof;
        where location ne '';
该步骤的时候 会将第二行的内容写入到pvd中 因为pvd中除了新建立的mis_cnt列之外 其他列的值都被覆盖了 所以结果中就没有了第一行的值

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

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