設置新列的數據類型嗨,我如何有條件地以編程方式為新列設置數據類型? 我有一個涵蓋數字/字符的解決方法,它可以擴展到其他類型,但我試圖讓下面的方法(標記為“不工作”)工作。 日誌顯示它無法識別類型變量。 我嘗試了一些類似 parse() 的方法,但到目前為止都沒有成功。
Names Default To Here( 1 );
dt = open( "$SAMPLE_DATA\Big Class.jmp");
colType = column(dtData,"Name") << get data type;
// doesn't work, error on colType
dt << add multiple columns("New Column", 1, After("Name"), colType);
// works
dt << add multiple columns("New Column", 1, After("Name"), Numeric);
if(colType == "Character", column(dt, "New Column") << data type ("Character"));回复:為新列設置數據類型吉姆成功了;如果任何人與您的代碼產生更好的共鳴,這裡還有一些其他方法可以構建該語句:
使用 Eval Insert、Eval Expr、Parse 和 Substitute 將一個表達式插入另一個表達式
回复:為新列設置數據類型Add Multiple Columns 似乎不允許在實際執行語句之前進行解析。因此,在將其提供給 JMP 執行之前,需要完全充實顯示為“添加多列”的內容。這裡有幾種方法可以做到這一點
Names Default To Here( 1 );
dt = Current Data Table();
coltype = "character";
Eval(
Parse(
Eval Insert(
"dt << add multiple columns(\!"New Column\!", 1, After(\!"Name\!"), ^colType^)"
)
)
);
// or
Eval(
Substitute(
Expr(
dt << add multiple columns(
"New Column",
1,
After( "Name" ),
__type__
)
),
Expr( __type__ ), colType));