选择日期我正在尝试创建数据集的子集。我想选择开始日期和结束日期之外的日期进行分析,然后排除这些日期。不知道为什么这不起作用,看起来很容易。我认为这是数字格式问题?
我有 StartDate 和 EndDate 作为来自 CalendarBox() 的日期
:Date 是一个包含格式为 m/d/y 的数字日期的列。
我试过这个没有成功:
BegTime = dt<< Subset(All rows, Selected columns only( 0 ) );
BegTime << Select Where(:Date < Informat(StartDate) |:Date > Informat(EndDate))<<EXCLUDE></EXCLUDE>
要检查列,我试过这个(下面)但没有得到结果。只是 ”。
BegTime <<NEW column=""></NEW>
回复:选择日期我认为您的问题是您认为 StartDate 和 EndDate 是数字日期。您构建代码的方式 StartDate 和 EndDate 是指向对象的指针。您需要从对象中提取日期值并将它们放入您选择的变量中。此外,您使用模态窗口不会让任何处理运行,例如设置可供选择的日期的选择范围。所以我也取消了这个限制。因此,如果您遵循下面脚本的逻辑,您将看到如何在不使用模态窗口的情况下处理处理控件。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Time Series\Raleigh Temps.jmp" );
dt << clear row states;
startNW = New Window( "Start Date of Data",
StartDate = Calendar Box(),
Button Box( "OK",
startNW << close window;
runEndDate;
)
);
StartDate << Max Date( Col Max( :name( "Month/Year" ) ) ) << Min Date( Col Min( :Name( "Month/Year" ) ) );
StartDate << Set Function( Function( {this, date}, theStartDate = StartDate << Get Date ) );
runEndDate = Expr(
endNW = New Window( "End Date of Data",
EndDate = Calendar Box(),
Button Box( "OK",
endNW << close window;
runSelect;
)
);
endDate << Max Date( Col Max( :name( "Month/Year" ) ) ) << Min Date( Col Min( :Name( "Month/Year" ) ) );
EndDate << Set Function( Function( {this, date}, theEndDate = endDate << Get Date ) );
);
runSelect = Expr(
dt << select where( :Name( "Month/Year" ) < theStartDate | :Name( "Month/Year" ) > theEndDate )
);回复:选择日期:Date 定义为从 01JAN1904 开始的以秒为单位的值。如果我删除“m/d/y”格式,它是一个类似于 CalendarBox() 数字的数字。
不过,我什至不能将这些数字彼此相减。非常困惑?
回复:选择日期是的,那是行不通的。 我的 :Date 值是否可能与我的 JMP calendar box() 值不同?
这就是我计算的方式:日期
dt<< new column ("Date", numeric, continuous, format("m/d/y"), formula(
Date MDY(
Num( Substr( :TimeStamp, 1, 2 ) ),
Num( Substr( :TimeStamp, 4, 2 ) ),
Num( Substr( :TimeStamp, 7, 4 ) ) )
));
:TimeStamp 是格式为 01:28:2018::02:14:08:099 的字符
StartDate 和 EndDate 来自于:
new window("Start Date of Data",<<MODAL></MODAL>回复:选择日期我假设您要处理的日期数据是 JMP 日期值(数值,自 1904 年 1 月 1 日以来的秒数)。鉴于此,无需将它们转换为数值以外的其他值。因此下面应该工作
BegTime = dt<< Subset(All rows, Selected columns only( 0 ) );
BegTime << Select Where(:Date < StartDate |:Date > EndDate)<<EXCLUDE></EXCLUDE>