我為不同的人安排了兩個不同的日期。 第一列 (A) 是人名。 第二列是(B=指數事件日期),第三列是(C=幹預日期)。 第四列是兩個日期「BC/ in days(1)」之間的差異 (D) 。
我的問題是如何讓JMP為每個人(A)選擇D中的特定值。 我需要在以下時間範圍內選擇值:
1- 索引事件日期 (B) 之前 D 中最接近的值。 假設一個人具有以下日期差異值。0、-1、-10。 在這種情況下我想要零
2- A 之後 2 週內(0 天到 14 天)D 中的第一個值,假設一個人有 2、8、14。 我想要 2
3- 自 A 兩週後(15 天或更長時間)D 中的第一個值 假設一個人有 17、25、35。 我想要17個
你好,
正如傑德所提到的,更多背景更好,但我想我明白你想要什麼。
在情況 (1) 中,為最大值,但僅限於那些小於或等於零的差異。
在情況 (2) 中,為最小值,但僅限於 0 到 14(含)之間的差值。
在情況 (3) 中,最小值,但僅限於這些差異 15 或更大。
如果這是您想要的,那麼在每種情況下您都可以使用相同的想法:
1)動態設定你不想遺失的數據,然後
2)計算資料的最大值或最小值,同時忽略缺失的資料。
在下面的程式碼中,每個公式具有相同的結構:
Col <> (如果(我想忽略數據,使其丟失,否則使用原始數據),<<分組變數>> )。
那我們要忽略哪些數據呢?
在情況 ( 1 ) 中,它是 :diff > 0...任何大於 0 的差異
對於情況(2),是的! ( 0 <= :diff <= 14)...不介於 0 和 14 之間的任何差異(包括 0 和 14)
在情況 (3) 中,它是 :diff < 15...任何小於 15 的差異
運行程式碼,您將看到如下所示的表格。 在我的程式碼中,分組列是「人」列...我剛剛模擬了差異,正如您的描述所示,這是感興趣的列。
乾杯,
布雷迪
Names Default To Here( 1 );
nr = 50;
dt = New Table( "ex",
New Column( "Person", character, <<SET values=""> 0, ., :diff ), :Person ) ) );
dt << New Column( "form_2", formula( Col Min( If( !(0 <= :diff <= 14), ., :diff ), :Person ) ) );
dt << New Column( "form_3", formula( Col Min( If( :diff < 15, ., :diff ), :Person ) ) );</SET>

您是否可以分享一個範例資料表來幫助使這一點更加清晰? 如果無法共享 PII 或專有信息,則功能 Tables...Anonymize 可以使共享變得更容易。