如何重新命名 1 列中的多個變數?我在 1 列中有多個變數(即 B、F、T),需要重新命名。
Local({dt, col1},
dt = Data Table("ProductDefect");
dt << Begin Data Update;
col1 = dt << New Column(dt:LayerData);
col1 << Set Name("Side");
dt << Move Selected Columns({col1}, after(dt:LayerData));
For Each Row(
dt,
col1[] = If(Contains(dt:LayerData, "B"),
"Back",
dt:LayerData
)
);
dt << End Data Update;
);使用此腳本,我僅更改 B,而其他變數(即“F”、“T”)不會更改。應該怎麼做才能在新列中重新命名所有內容; B = 背面,F = 正面,T = 頂部?
自動化和腳本編寫回覆:如何重新命名 1 列中的多個變數?Recode平台可以輕鬆地為您建立這種類型的轉換。


Local({dt, col1},
dt = Data Table("Big Class");
dt << Begin Data Update;
col1 = dt << New Column(dt:sex);
col1 << Set Name("sex 2");
dt << Move Selected Columns({col1}, after(dt:sex));
dt << Recode Column(
dt:sex,
{Map Value(_rcOrig, {"F", "Female", "M", "Male"}, Unmatched(_rcNow))},
Update Properties(1),
Target Column(col1)
);
dt << End Data Update;
);
您可能還想考慮使用值標籤列屬性

它不會更改表中的數據,但您將看到“重新編碼”的值
回覆:如何重新命名 1 列中的多個變數?感謝您的回饋!
但是,透過使用重新編碼平台,腳本無法自動化,因為我必須從資料庫上傳數據,並在每次資料庫有新添加時手動重新編碼。
如所附範例所示,我的資料不斷從系統更新,命名將不斷變化,而數字和變數保持不變(例如,1B-xx、1F-xx、1T-xx、2B-xx、2F-xx、 2T- xx,...)。系統不會自動顯示 B = 後、F = 前、T = 頂部。
有沒有一種方法,無需每次我想要進行分析時都重複重新編碼?
回覆:如何重新命名 1 列中的多個變數?「2B-New」應該是「Back」還是「2Back-New」等等?
回覆:如何重新命名 1 列中的多個變數?是的,在新列中,我只想指定“側面”。因此 2B-New 將是“後退”,2T-Basic 將是“頂部”,依此類推。
回覆:如何重新命名 1 列中的多個變數?您可以多次使用重新編碼和替換字串。我不知道你的數據,所以我不確定什麼是最好的方法(我可能會使用簡單的正規表示式,如果需要更複雜的,你也可以這樣做)

對所有具有自己模式的人重複此操作

JMP 會為您建立一個腳本
// Recode column: ProductDefect
Local({dt},
dt = Data Table("Sheet1");
dt << Begin Data Update;
dt << Recode Column(
dt:ProductDefect,
{Regex(_rcNow, ".*?\d+B.*", "Back", GLOBALREPLACE),
Regex(_rcNow, ".*?\d+T.*", "Top", GLOBALREPLACE),
Regex(_rcNow, ".*?\d+F.*", "Front", GLOBALREPLACE)},
Update Properties(1),
Target Column(:ProductDefect)
);
dt << End Data Update;
);
如果您不想就地執行此操作,請在不啟用該功能的情況下執行重新編碼
回覆:如何重新命名 1 列中的多個變數?非常感謝您的幫忙!這正如我所想的那樣!