創建時間變量大家好,
我對 JMP 世界比較陌生,並且正在嘗試處理數據集。
我正在嘗試在我的數據中創建一種在試驗中測量時間的方法。 為此,我創建了一個 Lag 變量,它告訴我新的試驗何時開始。 我現在一直在嘗試創建一個變量,該變量將為我提供每次試驗中操作的演示次數,以便我可以使用它最終獲得每次試驗中的時間度量。 我已經將此過程設置為一個 if, then 語句,認為這會起作用,但我還沒有達到預期的終點。 當前代碼如下。
If( :Lag1 == 1, 1,
:Lag1 == 0, Empty () )
當 Lag1 變量等於 1 時,我希望新變量等於 1。 當 Lag1 等於 0 時,我希望它向上計數,直到它到達下一個 lag1 == 1,其中應該以新的計數序列重新開始。 我已經在 JMP 腳本中嘗試了許多不同的功能,並且到目前為止都很幸運。
任何幫助是極大的讚賞!
回复:創建時間變量
好的。 因此,僅在查看選定區域時。 我想要:
Nback#=1,持續時間=14303912,累積持續時間=0
Nback#=2 , 持續時間=14305914, 累積持續時間=2002
Nback#=3 , 持續時間=14307916, 累積持續時間=4004
Nback#=4 , 持續時間=14309965, 累積持續時間=6053
Nback#=5 , 持續時間=14312015, 累計持續時間=8103
Nback#=6 , 持續時間=14314051, 累積持續時間=10139
希望這有助於使一切更清楚。 這是我在這個新列創建中最理想的情況。
回复:創建時間變量第一個案例有一個持續時間。那麼當 Nback# 為 2 時,這應該是什麼樣子呢?1 和 2 的持續時間之和?
您希望此列成為累積持續時間嗎? Nback# 為 1 時有持續時間嗎?
也許您需要為每個實例添加一個 Nback# 0 行,其中持續時間為零。
你的要求不清楚。創建一個包含 Nback#、持續時間和此累積持續時間的 5 行示例,以便清楚需要什麼。
回复:創建時間變量我確實想要價值Nback # of Letters Presented ==1 為 0。 當前測量 Nback Start 的列是一個累積總數,但我想知道該試驗中每個 nback 演示已經過去了多少時間。 為此,我希望每個的開頭都為 0,以便我也可以在多個試驗中進行比較。
回复:創建時間變量當 Nback # of Letters Presented ==1 時,我認為您不想要 0。 您不想要該行的持續時間嗎?這是截圖,公式


If( :Nback # of Letters Presented == 1,
:Duration,
Lag( :Cumulative Duration, 1 ) + :Duration
)
回复:創建時間變量在創建這個總體時間度量時,我遇到了第二個問題。 我附上了一個屏幕截圖,顯示了迄今為止的數據。 我現在需要創建一個稱為“試用時間”的變量,我基本上將“Nback start”減去“Nback stop”。
更具體地說,我需要發生幾件事。
1. 當“Nback # of letters present”等於 1 時,“time in trial”應該等於 0。 然後作為“Nback # of letters present”增加了,“time in trial”也應該增加了。
2. 當我在“Nback # of letters present”中達到另一個 1 並從 0 重新開始“試用時間”時,這種增加應該停止。
任何指導將不勝感激。
回复:創建時間變量我的數據設置如右圖所示,就像你說的那樣,你給我的腳本確實有效!
非常感謝你的幫助。 我非常感謝!
回复:創建時間變量您的數據看起來已排序。 必須有一些列代表一個獨特的試驗,開始和結束。如果你的數據看起來像左圖,這就是我的意思,也許我應該稱之為混合試驗。
如果您的數據看起來像左邊,第 8 行 A 試驗會有 1 嗎?如果是,那麼該試驗是否僅持續 1 個週期,還是應該繼續計數?
如果你的數據看起來像右邊的表格,那麼我發送的函數就像你描述的那樣工作,並顯示在屏幕截圖中
Not sorted by Trial未按試用排序
Sorted by trials and function按試驗和功能排序
回复:創建時間變量我正在使用滯後函數來識別每個試驗的開始和結束。 每個被試各有 4 次試驗,1 和 0 並沒有相互分離,它們在整個被試數據中交織在一起。 每個試驗的長度將根據該特定試驗的長度而有所不同,並且對於每個參與者來說都不相同。
因此,我不確定您的建議是否完全適用於我擁有的數據集。 如果有幫助的話,有一個例子說明我的 0 和 1 在我的數據集中交織在一起。
感謝您的答复!

回复:創建時間變量創建一個新列,這裡我叫它:Group Order,這裡是函數。 注意 JMP 有一個名為 lag() 的函數,以防您不熟悉它。
If( row()==1 | :Lag1==1, 1,
:Lag1==0, lag(:Group Order)+1
)
這當然假設您的表格已排序。 這是一個腳本,首先將 Big Class 更改為具有類似於您的表格的佈局:Lag1。 然後使用上面的函數創建列。
Names default to here(1);
dt = Open("$sample_data/big class.jmp");
dt << sort( By(:sex, :age), Replace Table);
//needs to be sorted so 1's and 0's are not mixed
dt << New Column("Lag1", numeric, <<SET each="" value=""></SET>