如何在SAS中更有效地将日内时间段分组为15分钟的组?

如何在SAS中更有效地将日内时间段分组为15分钟的组?,sas,Sas,我试图将上午9:30到下午4:00的交易时间划分为15分钟的间隔。我想分别对每15分钟的间隔进行分析。我如何简化下面的代码,而不是以26天15分钟的间隔重复if语句 我需要一个名为interval的变量,如下所示,因为我可以选择只在特定的时间间隔上运行分析,例如“如果intervalinterval=ceil((分钟+(小时-9)*60)-30)/15;interval=ceil((分钟+(小时-9)*60)-30)/15;interval=ceil((分钟+(小时-9)*60)-30)/15)

我试图将上午9:30到下午4:00的交易时间划分为15分钟的间隔。我想分别对每15分钟的间隔进行分析。我如何简化下面的代码,而不是以26天15分钟的间隔重复if语句


我需要一个名为interval的变量,如下所示,因为我可以选择只在特定的时间间隔上运行分析,例如“如果intervalinterval=ceil((分钟+(小时-9)*60)-30)/15;

interval=ceil((分钟+(小时-9)*60)-30)/15;

interval=ceil((分钟+(小时-9)*60)-30)/15)一种更时髦的方法是使用

这在数学上更简单,也更灵活,因为它可以轻松地计算任何类型的间隔


intck
以最简单的形式接受三个参数:间隔类型、开始时间和结束时间,并告诉您从开始时间到结束时间跨越间隔边界的次数。间隔类型是时间单位(“分钟”、“月”、“小时”等等)的组合如果需要的话,一对数字由一个小数点分隔;左手是间隔的数字,右手是移位(因此,如果你想从5分钟开始你的15分钟间隔,它应该是
MINUTE15.5
)。

更时髦的方法是使用

这在数学上更简单,也更灵活,因为它可以轻松地计算任何类型的间隔


intck
以最简单的形式接受三个参数:间隔类型、开始时间和结束时间,并告诉您从开始时间到结束时间跨越间隔边界的次数。间隔类型是时间单位(“分钟”、“月”、“小时”等等)的组合如果需要的话,一对数字由一个小数点分隔;左手是间隔的数字,右手是移位(因此,如果你想从5分钟开始你的15分钟间隔,它应该是
MINUTE15.5
)。

更时髦的方法是使用

这在数学上更简单,也更灵活,因为它可以轻松地计算任何类型的间隔


intck
以最简单的形式接受三个参数:间隔类型、开始时间和结束时间,并告诉您从开始时间到结束时间跨越间隔边界的次数。间隔类型是时间单位(“分钟”、“月”、“小时”等等)的组合如果需要的话,一对数字由一个小数点分隔;左手是间隔的数字,右手是移位(因此,如果你想从5分钟开始你的15分钟间隔,它应该是
MINUTE15.5
)。

更时髦的方法是使用

这在数学上更简单,也更灵活,因为它可以轻松地计算任何类型的间隔



intck
以最简单的形式接受三个参数:间隔类型、开始时间和结束时间,并告诉您从开始时间到结束时间跨越间隔边界的次数。间隔类型是时间单位(“分钟”、“月”、“小时”等等)的组合和一对数字,如果需要,用小数点分隔;左手是间隔的数字,右手是移位(因此,如果您想从5分钟开始15分钟的间隔,它应该是
MINUTE15.5
).

module
int
by 15?module
int
by 15?module
int
by 15?非常感谢。我需要一个名为interval的变量,如下所示,因为这样我就可以选择只在某些间隔上运行分析,例如“如果intervalI还将我的时间戳转换为一个名为int的变量。例如int=1等于交易日的第一分钟。我可以将intck与您建议的时间格式相反地与该变量一起使用吗?谢谢。非常感谢。我需要一个名为interval的变量,如下所示,因为这样我可以选择仅在某些时间间隔上运行分析,例如“如果intervalI还将我的时间戳转换为一个名为int的变量。例如int=1等于交易日的第一分钟。我可以将intck与您建议的时间格式相反地与该变量一起使用吗?谢谢。非常感谢。我需要一个名为interval的变量,如下所示,因为这样我可以选择仅在某些时间间隔上运行分析,例如“如果intervalI还将我的时间戳转换为一个名为int的变量。例如int=1等于交易日的第一分钟。我可以将intck与您建议的时间格式相反地与该变量一起使用吗?谢谢。非常感谢。我需要一个名为interval的变量,如下所示,因为这样我可以选择仅在某些时间间隔上运行分析,例如“如果intervalI还将我的时间戳转换为一个名为int的变量。例如int=1等于交易日的第一分钟。我可以用intck来代替你建议的时间格式吗?谢谢。非常感谢。是否可以通过添加此代码来区分不同的间隔?例如interval=1是一天中的前15分钟,interval=2是一天中的第二个15分钟,等等。谢谢。这正是这个语句的作用:将interval=1分配给一天中的前15分钟,interval=2分配给第二个,等等。这不是你的意思吗?是的,我明白了。谢谢,非常感谢。是否可以通过添加此代码来区分不同的间隔?例如interval=1是一天的前15分钟,interval=2是一天的第二个15分钟,等等。谢谢。这正是这个语句的作用:将interval=1分配给一天的前15分钟,interval=2t
int=(minute+(hour-9)*60)-29;
if int<16 then interval=1;
if int=>16 and int< 31 then interval=2;
if int=>31 and int< 46 then interval=3;
if int=>46 and int< 61 then interval=4;
*Create test dataset;
data have;
format trade_time TIME9.;
do trade_time = '09:00:00't to '16:00:00't by 480;
  output;
end;
run;

data want;
set have;
interval = intck('MINUTE15','09:00:00't,trade_time)+1;
run;