根據其他兩列模式在列中查找模式,然後將開始值和結束值存儲在新列中你好,
我正在嘗試創建一個新列(在我的文件“必需值”中),它只能具有二進制值 - 0/1 或開始/結束。 它的值取決於另一列(在我的文件“出現次數”中),該列具有基於其他兩列(在我的文件中 - “ID”和“Sub_set”)的重複模式。文字過多,請看附件圖片和數據文件。我在新列中嘗試了幾個公式,也嘗試了幾個 for 循環。 但我無法同時獲得開始值和結束值。 我只能獲得起始值。
有什麼幫助嗎?

腳本回复:根據其他兩列模式在列中查找模式,然後將開始值和結束值存儲在新列中我試圖做非常相似的事情,使用函數“Dif”但不知何故它對我不起作用。
謝謝你的幫助吉姆。
回复:根據其他兩列模式在列中查找模式,然後將開始值和結束值存儲在新列中你好@SDF1
實際數據集中有超過2M行。 這是偶然的,當我創建一個樣本數據集時,我的工具值小於 0.25,因此你看到它所有的“數據”<= 0.25。 該登錄將不起作用。
“ID”是主欄。 每個 ID 可以有多個“子集”,如“AAA”、“CCC”等。(不同的“ID”也存在相同的“子集”。)現在對於每個“子集”,我們有“出現次數”(重複模式)如 - 2,2,2,2,2,2,2,2,2,2 或 4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4 的長度不同,而且順序可能不連續!現在相同的“出現次數”(重複模式)也可以用於其他“子集”。
如果我們想使用“數據”中唯一的東西是 - 對於每個模式(“出現次數”)從最低的“數據”值(但不是固定數字)開始並以最高的“數據”值結束模式(同樣不是固定值)。
我希望現在一切都清楚了!
謝謝。
回复:根據其他兩列模式在列中查找模式,然後將開始值和結束值存儲在新列中這是一個公式,它是計算所需內容的一種方法
If(
Row() == 1, 0,
:Number of Occurance != Lag( :Number of Occurance ), 0,
:Number of Occurance != :Number of Occurance[Row() + 1], 1,
Row() == N Rows( Current Data Table() ), 1,
.
)
回复:根據其他兩列模式在列中查找模式,然後將開始值和結束值存儲在新列中你好@HSS ,
您能否提供一些基本邏輯示例,說明“必填值”列如何依賴於“出現次數”、“子集”和“ID”? 根據您的描述,尚不清楚這些列如何導致具有 0 或 1 輸出的“必需值”。
例如,第 1 行和第 13 行均為 0,而第 12 和 25 行均為 1。 從數據表的結構中不清楚為什麼要這樣設置這些值。 如果您能提供更多的邏輯解釋,將有助於生成正確類型的列公式。
例如,
If( :"data"n ==0, :"required values"n = 0,
:"data"n>=0.24, :"required values"n=1,
.
);
在上面的例子中,邏輯是如果“data”列等於0,那麼“required values”列中的條目等於0;否則,如果“data”的值大於或等於 0.24,則“required values”的條目等於 1。 這將滿足所需值的元素,但也可能包括一些不是子集類型的最後一個元素的其他條目。
我知道這並不是您要應用於整個列的確切內容,但是更好地了解您需要應用的邏輯將有助於創建適用於整個列的正確類型的列公式.
DS