我正在尝试在SAS中编写代码。我有一个数据集,如下所示:
data one;
input CLI date date9. time time8. ;
format date date9. time hhmm8. ;
cards;
5 01apr2014 10:00:00
6 01apr2014 11:00:00
10 01apr2014 12:00:00
4 02Apr2014 10:00:00
20 02apr2014 11:00:00
12 02apr2014 12:00:00
;
run;
我想获得一个数据集,如下所示:
data two;
date time New_cli
01apr2014 10:00:00 1
01apr2014 10:00:00 1
01apr2014 10:00:00 1
01apr2014 10:00:00 1
01apr2014 10:00:00 1
01apr2014 11:00:00 1
01apr2014 11:00:00 1
01apr2014 11:00:00 1
01apr2014 11:00:00 1
01apr2014 11:00:00 1
01apr2014 11:00:00 1
.
.
.
02Apr2014 10:00:00 1
02Apr2014 10:00:00 1
02Apr2014 10:00:00 1
02Apr2014 10:00:00 1
.
.
照这样,数据“一个”中的每个观察都应在“两个”中重复进行CLI时间(例如,在一个1/04 10 am中的第一次观察应在两次中重复5次,第二个则重复6次,依此类推。 ) 有什么可以帮助我的吗?非常感谢!
答案 0 :(得分:1)
使用do
中的1 to CLI
循环,并在循环中使用output
语句为循环的每次迭代输出一行。 SAS会自动将CLI
解析为其所保存的值,并准确运行do
循环多次。
data want;
set have;
do i = 1 to CLI;
new_cli = 1;
output;
end;
drop i;
run;