我想將 JMP 公式中找到的所有列名稱引用提取到列表中,特別標識其列依賴性。 JMP 公式可能相當複雜;例如,他們可能會建立 JSL 程式碼作為包含列名稱的輸出。 我對這些列名稱不感興趣,因為公式不依賴它們。 我只對它用於計算結果的列名稱感興趣。 有沒有一種簡單的方法可以做到這一點,而無需以程式設計方式解析公式?
這是我最初計劃的草圖。
將公式轉換為字串並蒐索三個元素::、:\!"、\!"。
- 首先刪除所有引號。 尋找前面沒有 : 的第一個 \!",然後尋找其符合的 \!"沒有前面的 : 且沒有多重轉義引號。 將其識別為公式中的引號並將其刪除(或跳過它)。 然後重複整個公式
- 然後在字串中搜尋名稱
- 如果找到 :,則繼續,直到找到「名稱中斷」字元(例如逗號)。 儲存為字串格式的名稱之一
- 如果找到
!",則繼續,直到找到 \!"n。 將名稱字串儲存為名稱之一
- 最後,對名稱清單進行重複刪除,確保它們是唯一的。
有沒有更優雅的方法來做到這一點?
如果不是,上面的內容可能會出現什麼問題? 是否有其他方法可以在公式中指定列名稱?
我願意假設公式是透過傳統的點擊公式編輯器建立的,並且不使用 JSL 程式碼。 例如,在公式中使用 Parse() 解析列所引用的 JSL 程式碼將超出範圍。 不過,如果它也能做到這一點那就太好了:)。
這裡有一些帖子可能會提供一些想法Head Arg 遞迴公式(我會使用類似的東西來避免字串轉換),如何自動擷取JSL程式碼中公式使用的列名?