嘗試在動態公式中使用時如何處理列名稱中的引號<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />假設我有一個帶有標題 Greek 和 AlsoGreek 的表,如下所示:
希臘語 也希臘語
阿爾法披
貝塔歐米茄
伽瑪澤塔
以下腳本將為我提供一個名為“concat”的列,它將合併 2 列(我在 concat 符號之間添加了製表符以使其更具可讀性)。
dt = 當前資料表();
colnames = dt<<取得列名;
colstring=":名稱(\!"" || char(colnames[1]) || "\!")";
for(i=2,i<=nitems(colnames),i++,
colstring=colstring || “||” || ":名稱(\!"" || char(colnames ) || “\!”)”
);
parsecolstring=解析(colstring);
dt<<新欄位("concat",公式(parsecolstring));
現在奇怪的是,如果我將表頭 AlsoGreek 放在引號中(如“AlsoGreek”),則代碼將不起作用。這是錯誤日誌的輸出(我在上面程式碼中的所有變數後面都添加了 show ,以便我可以看到發生了什麼
colnames = {希臘文, Name("\!"也是希臘文\!"")};
Char(colnames[1]) = "希臘文";
colstring = ":名稱(\!"希臘文\!")";
colstring = ":名稱(\!"希臘文\!")||:名稱(\!"\!"也是希臘文\!"\!")";
應為“)”,但找到了“AlsoGreek”。
第 1 行第 25 欄::Name("Greek")||:Name(""►AlsoGreek"")
有解決辦法嗎?如果沒有,有沒有辦法從列名中提取引號?我嘗試使用替換來刪除 \!",但 JMP 無法將其識別為字串...
任何幫助將不勝感激!我有 >100 個列名稱中帶有引號的列...
回覆:嘗試在動態公式中使用時如何處理列名中的引號我很難理解你想要實現的目標。 但是,如果您想要連接 JMP 表中的所有 ColumnName,並使用該新名稱建立新列,則下列程式碼應該適用於您的範例:
透過建立變數 NameofNewColumn,並在 EVAL 函數中包含的 New Column 語句中使用該變數...可能會幫助你。
dt = 當前資料表();
colnames = dt<<取得列名;
新列名 = "";
For(i=1, i < N Items(colnames)+1, i++,
新列名稱 = 新列名稱 || Char(列名);
);
eval(dt<<新欄位(NameofNewColumn)));
回覆:嘗試在動態公式中使用時如何處理列名中的引號我想我會回答我自己的回覆......
問題是 JMP 無法辨識哪些引號與 \!" 關聯,哪些不關聯。所以我懷疑,當您在帶引號的列上使用 char 函數,然後稍後對其進行解析或對該字串執行其他操作時,您會遇到問題。
有兩種方法可以處理此問題 - 第一種方法是將要連接的所有列放入清單中,然後使用 parse(concat(list)) 選項。
另一種方法(這是我使用的)是取得清單中的列,然後使用簡單的 for 語句刪除引號:
無引號={},
for(i=1,n<=nitems(origlist),i++,
插入(無引號,替換(char(origlist ),"\!"",""));
作為名稱(原始列表<<設定名稱(無引號);
);
使用無引號清單名稱來引用感興趣的列,完成後,您可以透過執行上述腳本的相反操作將列名稱變更回原來的名稱。