【问题标题】:Missing String Value Interpolation SAS缺少字符串值插值 SAS
【发布时间】:2017-10-31 01:11:01
【问题描述】:

我有一系列缺少观察的字符串值。我想使用平面替换。例如变量 x 有 3 个可用值。在这种替换方法下,应该有 33.333% 的机会将缺失值分配给 x 的可用值。我该怎么做?

DATA have;
 INPUT id a $ b $ c $ x; 
CARDS; 
1 Y Male . 5 
2 Y Female . 4 
3 . Female Tall 4 
4 Y . Short 2 
5 N Male Tall 1
;
Run;

【问题讨论】:

  • 您应该包含一个数据示例。您需要帮助的哪一部分?选择随机值?选择离散值?加入数据?
  • 对不起,我还是个新手。
  • 我遇到的问题是抱歉,我对 Stackoverflow 的这一端还有些陌生。我的数据如下所示:我的数据如下所示: DATA 有;输入 id a $ b $ c $ x;牌; 1岁男。 5 2 岁女性。 4 3 .女性高 4 4 岁。短 2 5 N 公高 1;跑;我需要帮助找出构建代码以选择具有缺失值的多个变量。
  • 嗨。缺失值的插补是一个复杂的概念,不适合简单的 StackOverflow 问题。我建议你至少搜索“插补”和“性格”,看看你能找到什么,然后如果你有更具体的问题,请回到这里问。
  • 谢谢。但是,我没有就哪种插值方法在哪种情况下更优越的含义提出问题。我唯一关心的是如何执行一种数据处理方法,用一个值替换数据集中的缺失值。数据处理本身是执行一种给定形式所必需的,但也许是其他插值方法。

标签: sas missing-data


【解决方案1】:

您可以使用临时数组来存储可能的值。然后在数组中生成一个随机索引。

DATA have;
 INPUT id a $ b $ c $ x; 
CARDS; 
1 Y Male . 5 
2 Y Female . 4 
3 . Female Tall 4 
4 Y . Short 2 
5 N Male Tall 1
;

data want ;
  set have ;
  array possible_b (2) $8 ('Male','Female') ;
  if missing(b) then b=possible_b(1+int(rand('uniform')*dim(possible_b)));
run;

【讨论】:

    【解决方案2】:

    我通过生成随机数和硬编码限制来做到这一点。应该有一种更简单的方法来做到这一点,但就问题而言,这应该可行。

    option missing=''; 
    data begin;
    input a $; 
    cards;
    a
    . 
    b 
    c
    . 
    e
    . 
    f 
    g 
    h 
    . 
    . 
    j
    . 
    ;
    run;
    
    data intermediate;
        set begin;
        if a EQ '' then help= rand("uniform");
        else help=.;
    run;
    
    data wanted; 
        set intermediate;
        format help populated.;
    
        if a EQ '' then do;
            if         0<=help<0.33 then a='V1';
            else if 0.33<=help<0.66 then a='V2';
            else if 0.66<=help      then a='V3';
        end;
        drop help;
    run;
    

    【讨论】:

    • 我遇到的问题是抱歉,我对 Stackoverflow 的这一端还有些陌生。我的数据如下所示:我的数据如下所示: DATA 有;输入 id a $ b $ c $ x;牌; 1岁男。 5 2 岁女性。 4 3 .女性高 4 4 岁。短 2 5 N 公高 1;跑;我需要帮助找出构建代码以选择具有缺失值的多个变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多