Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date SAS:按列显示日期间隔_Date_Sas - Fatal编程技术网

Date SAS:按列显示日期间隔

Date SAS:按列显示日期间隔,date,sas,Date,Sas,我想在SAS中做一些我正在努力用语言表达的事情 基本上,我有一个带有入住日期的酒店列表——见表一。 我想换一张桌子,这样我就有一张住宿的清单——见表二 我的第一个表有两个字段,反映客户何时到达,第二个字段反映客户何时离开酒店。第二个表“日期”字段列出了在酒店住宿的夜晚。我说晚上,因为第二次约会是他们离开酒店的日期,所以他们不会过夜 从一号桌到二号桌怎么走 欢迎提出任何建议 提前谢谢 保罗 要计算夜数,您应该使用此代码^ data table_one; set table_one; c

我想在SAS中做一些我正在努力用语言表达的事情

基本上,我有一个带有入住日期的酒店列表——见表一。 我想换一张桌子,这样我就有一张住宿的清单——见表二

我的第一个表有两个字段,反映客户何时到达,第二个字段反映客户何时离开酒店。第二个表“日期”字段列出了在酒店住宿的夜晚。我说晚上,因为第二次约会是他们离开酒店的日期,所以他们不会过夜

从一号桌到二号桌怎么走

欢迎提出任何建议

提前谢谢

保罗


要计算夜数,您应该使用此代码^

data table_one;
   set table_one;
   count_nights = out_date - in_date;
run;
要将此计算属性添加到表2中,请尝试以下代码:

例1:

data table_two;
   merge table_two table_one;
   by hotel, customer_name, city;
run;
例2:

此外,您还可以从
表\u two
中计算近距离计数,如下所示

proc sql;
   create table table_two_nights as
   select t.*, count(*) as count_nights
   from table_two
   group by hotel, customer_name, city;
quit;

由于日期是以数字的形式存储的,所以只需从输入日期循环到输出日期的前一天,并输出循环的每次迭代,这是一项非常简单的任务

data have;
infile datalines dsd;
input hotel $ customer_name $ City $ in_date :date9. out_date :date9.;
format in_date out_date date9.;
datalines;
Hotel A, Joe, New York, 01jan2015, 04jan2015
Hotel B, Joe, Chicago, 05feb2015, 07feb2015
Hotel C, Sam, Portland, 15jun2015, 18jun2015
Hotel D, Amy, Boston, 04mar2015, 07mar2015
Hotel C, Sam, Portland, 15oct2015, 17oct2015
Hotel A, Tom, New York, 01nov2015, 02nov2015
;
run;

data want;
set have;
format stay_date date9.;
do stay_date = in_date to out_date-1;
output;
end;
drop in_date out_date;
run;

基思谢谢你的密码。事后看来,我的问题可能很愚蠢,但您的代码中包含了数据表。我的数据集显然更大,在您提供的数据步骤中如何使用我的数据表?我的数据中的A不起作用。谢谢你的帮助。paul只要在
set
语句中引用它,在Ex1中,BY语句中的变量之间不能有逗号。这也不能回答问题。