【问题标题】:SAS different random numberSAS不同的随机数
【发布时间】:2017-04-19 10:23:16
【问题描述】:

在 SAS 中,您可以在每个数据步骤中使用种子生成随机数; 2 个差异数据步骤中的相同种子 = 2 个差异数据步骤中的相同系列随机数。

在 2 个不同的数据步骤中从同一个种子中获得 2 个不同系列的随机数是否有技巧? 感谢您的提示。

跟随印度火箭队的回答: 我应该补充一点,我打算在数据步骤中使用相同的分布。

我找到了一种方法来创建一个巨大的随机数文件并在每个数据步骤中选择这些文件。 我想知道是否有更聪明的东西:-)

【问题讨论】:

    标签: random sas numbers


    【解决方案1】:

    看看这个:-

    /*Using same distribution without changing the seed*/
    
    data A(drop=i);
      call streaminit(123);
      do i = 1 to 5;
        col1 = rand("Normal",0,0.83325) + i; output;
      end;
    run;
    
    
    data E(drop=i);
      call streaminit(123);
      do i = 6 to 10;
        col1 = rand("Normal",0,0.83325) + i; output;
      end;
     run;
    

    希望这会有所帮助:-)

    【讨论】:

    • 嗨谢谢您的回复。你是对的。我应该指定我使用相同的分布(正常)。我认为的一种方法是生成一个巨大的随机数表,并在我的不同数据步骤中从该列表中进行选择;这很麻烦,但会起作用;我想知道是否有更聪明的主意:-)
    • 嘿,我想这更容易做。只需在数据集之间保持分布相同,并在我的代码中更改“i”的值。例如,不是 1 到 5,而是在第二个数据集中将其更改为 2 到 10。这样您就不需要创建单独的数据集并从那里选择数字。谢谢:-)
    • 喜欢吗?恐怕它不起作用:-( data A(drop=i); call streaminit(123); do i = 1 to 5 ; col1 = rand("Normal",0,0.83325) ; output; end; run; data E(drop=i); call streaminit(123); do i = 6 to 10 ; col1 = rand("Normal",0,0.83325) ; output; end; run;
    • 感谢您的帮助印度火箭
    • 您好,我忘了补充一点关于在等式中添加“i”:col1 = 'rand("Normal",0,0.83325)+ i'。
    猜你喜欢
    • 2019-03-07
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2016-04-21
    相关资源
    最近更新 更多