sas - 在 sas 中使用 do 循环
问题描述
假设您有一个来自传染病研究中心的名为 VIRUS_PROLIF 的数据文件。每个观察有 3 个变量 COUNTRY START_DATE 和 DOUBLE_RATE,其中 START_DATE 是该国家/地区登记第 100 例 COVID-19 病例的日期。对于每个国家/地区,DOUBLE_RATE 是该国家/地区的病例数翻倍所需的天数。使用 DO UNTIL 编写 SAS 代码,以计算该国家预计登记 200,000 例 COVID-19 病例的日期。
data VIRUS_PROLIF;
INPUT COUNTRY $ start_date mmddyy10. num_of_cases double_rate ;
*here doubling rate is 100% so if day 1 had 100 cases day 2 will have 200;
Datalines;
US 03/13/2020 100 100
;
run;
data VIRUS_PROLIF1 (drop=start_date);
set VIRUS_PROLIF;
do until (num_of_cases>200000);
double_rate+1;
num_of_cases+ (num_of_cases*1);
end;
run;
proc print data=VIRUS_PROLIF1;
run;
解决方案
问题200,000 < N 0 (1+R/100) k无需迭代即可求解整数k
day_of_200K = ceil (
LOG ( 200000 / NUM_OF_CASES )
/ LOG ( 1 + R / 100 )
);
推荐阅读
- python - 如何按值对python中的列表进行分类?
- jenkins - 将 Jenkins 流水线构建作业阶段显示为失败,而不会使整个作业失败
- java - 对于 Java Swing,如何访问 (x,y) 处的元素?
- c - 计算C中列表中的不同元素
- firebase - Flutter:如何使用以前的状态更新 Firestore 中的数据
- c# - 如何正确合并字典?
- javascript - 从 reactsjs 中的 json 响应中删除 html 标签
- json - linq 查询 .ToList() 到 json
- python - 以root用户身份在python中查找/home/user
- matlab - k-最近邻搜索从 MATLAB 中的 delaunay 三角剖分(或通用算法)