我有以下问题。我想计算包含全年的数据中每个月的价值。但我真的不想将整月导出到单独的表格中。
有没有办法让它适用于for循环或其他任何一个?
data BD.data2017r;
retain Open;
retain Close;
set BD.data2017 end=eof curobs=observ1;
if observ1 = 1 then do;
Open = Close;
end;
if eof then do;
Close = Close;
end;
absout = Close - Open;
relative = (Close - Open)/Open;
run;
答案 0 :(得分:2)
执行直到循环可以处理分组并维护标记值,而无需保留变量或显式输出:
protected function credentials(Request $request)
{
$credentials = $request->only($this->username(), 'password');
$credentials['confirmed'] = 1;
return $credentials;
}
执行相同操作的非do循环方法需要保留开放值并需要显式输出语句。
data have;
do date = '01jan2015'd to '31dec2016'd;
month = intnx('month',date,0);
close + 1;
output;
end;
format date yymmdd10. month yymmd7.;
run;
data want;
do until (last.month);
set have;
by month;
if first.month then open = close;
end;
range = close - open;
relative = range / open;
keep month open close range relative;
run;
答案 1 :(得分:1)
假设数据按日期排序,您可以使用BY组处理(by month_var
),first.month_var
和last.month_var
作为标记,指示每个BY的开始和结束小组(即月份)。
您还需要在output;
区块中每个月明确if last.month_var
一行。