sas - 如何在sas中生成相同的随机变量
问题描述
我想创建一个变量want
,它是一个随机生成的数字,遵循 dataset 的均匀分布data
。我希望所有行的数字都相同。我尝试了以下方法:
data data; set data; want = ranuni(0) ; run;
但这为每一行提供了不同的值。
我还尝试生成一个宏变量,然后将值传递给数据集,但我正在努力让它工作。请问有人可以教我怎么做吗?
我尝试了以下方法:
%let want1= %ranuni(0) ;
我也试过:
%let want1= %eval ( ranuni(0) );
data data;
set data;
want = &want1;
run;
解决方案
要在每个观察值上设置相同的值,请使用 RETAIN 语句来防止 SAS 在开始数据步骤的下一次迭代时重置该值。
data want;
set have;
if _n_=1 then myvar = ranuni(0) ;
retain myvar;
run;
要在宏代码中使用函数,您需要使用 %SYSFUNC() 宏函数。
%let mvar = %sysfunc(ranuni(0));
data want;
set have;
retain myvar &mvar ;
run;
推荐阅读
- javascript - 使用大于“Number.MAX_SAFE_INTEGER”(9007199254740992)的数字模拟输入 type="number"?
- ios - 尝试在右上角格式化图像 - SwiftUI
- laravel - 如何在 Laravel Sail 上启用 SSL
- tensorflow - 如何修复添加的层必须是类Layer的实例。成立:
? - django - For login, request provides user details in Django
- python - 有没有办法在 Python 中使用变量中的字符串调用方法?
- python - 为什么它同时打印“找到用户名”和“找不到用户名”?
- java - Web3j 安装后运行异常
- java - 删除单对多关系jpa中的实体
- elixir - 保护伞下的应用程序之间的 Phoenix PubSub