sas - SAS 从另一个数据集中选择随机交易日期
问题描述
我正在尝试向名为“new1”的数据集添加一个“伪日期”列。“伪日期”列将随机选择 01JAN2002 和 31DEC2018 之间的交易日期。以下代码运行良好。在“伪日期”中不需要周末,但它仍然增加了非交易日。我只想要交易日期。事实上,我创建了另一个只有交易日期的数据集。如何编写一个 SAS 代码,该代码将从交易日期数据集中随机选择并将其放入“伪日期”列的“new1”数据集中。
提前致谢。
data new1;
set new;
format pseudodate yymmddn8.;
Begdate= '01JAN2002'd;
enddate= '31DEC2018'd;
do _i=1 to 1000;
pseudodate = begdate + (floor((enddate-begdate) * ranuni(457)));
if weekday(pseudodate) not in (1,7) then leave;
else call missing(pseudodate);
end;
run;
解决方案
- 在您的主数据集中创建一个随机数,它是介于 1 和交易日天数之间的整数。
- 在交易日数据中添加记录号
- 根据 1 和 2 中的数字连接数据
如果您只忽略周末,那么为什么不在 x 天之间生成一个随机数,然后使用 intnx 和 weekday 选项来增加它呢?
算出 2018 年 12 月至 2002 年 1 月之间的工作日数,并将其用作您的限制。
完全未经测试:
data want;
set new;
nDays =intck('weekdays', '01Jan2002'd, '31Dec2018'd, 'C');
x = rand('integer', 1, nDays);
randDate = intnx('weekday', '01Jan2002'd, x);
run;
推荐阅读
- api - 通过 Rest API 以 csv 格式导出 PowerBI 报告
- vb.net - 如何正确排序水晶报表组
- java - snmp 版本 3 客户端 android studio
- .htaccess - 带有 c-panel 的子域重定向,Wordpress 问题
- sql - N用户不应为数据输入人员同时获取相同的数据[postgres]
- sql - 当一个值不属于第二个表时从两个表中收集数据
- ios - 使用框架!在 Podfile 中导致找不到“React/RCTBridgeDelegate.h”
- flutter - SingleChildScrollView 颤动中的 Streambuilder 错误
- elasticsearch - 根据指示状态变化的事件绘制状态图
- swift - SwiftUI macOS 悬停在按钮更改光标鼠标上