將轉換後的變量附加到列錶框中大家好,
當我使用“附加”功能時,我無法將轉換後的變量添加到列錶框中。
這是一個例子:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add", ll2 << append( ll1 << get selected ) ),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
然後例如我右鍵單擊變量“height”>“Transform”>“Log”
當我選擇新變量“Log [height]”並單擊“Add”按鈕時,沒有任何事情發生......
你知道我怎麼改變它嗎?
在此先感謝您的幫助!
Re:將變換後的變量追加到col列錶框<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />謝謝你的答案W. Murphrey和msharp。
現在,檢查變量是否在表中,如果沒有,向用戶說他必須添加它,似乎是處理我的問題的好方法。
我要試試這個!
再次感謝。
Re:將變換後的變量追加到col列錶框Col List Box()支持拖放功能。 因此,您始終可以將“添加”按鈕替換為“請拖放:”文本框。
但是,更大的問題是通過右鍵單擊Col List Box()可以獲得轉換功能。 主要是b / c我不確定你這樣做時你在做什麼。 但有一件事是肯定的,你顯然沒有在數據表中創建一個新的轉換列。 數據表不會更改。 似乎用戶現在可以創建hocus pocus列,然後將它們拖放到分析字段中。 這會導致應用程序崩潰,除非您通過創建它們來添加處理這些虛構列的功能。
為了在用戶點擊帶有假列的運行按鈕時不會崩潰,您必須執行檢查以查看所選列是否存在(類似於W. Murphrey的代碼)。 如果列不存在,則必須創建它。 由於最終用戶可能會右鍵單擊並對轉換進行轉換,因此您的代碼必須足夠強大才能處理此問題。 實現此功能後,最終用戶將知道他們可以在分析之前右鍵單擊並創建列,他們還將看到其他功能,因此您需要為聚合,分佈,行和公式創建更多功能。 不幸的是,由於你無法知道他們想要如何更改所創建的列的公式,你最好意識到這是一個蟲洞。
我想說最好忽略這一點,等到SAS能夠實現它.Murphrey表示他們會在以後的版本中實現它。 如果您的最終用戶在分析之前絕對需要能夠對列進行轉換,只需授予他們訪問數據表的權限即可。
Re:將變換後的變量追加到col列錶框你好,
不幸的是,目前ColListBox中沒有對轉換列的JSL支持。 該建議已提交給JMP開發團隊,以便在將來的版本中考慮。
在此期間,您可以添加一個檢查以驗證該列是否存在。 如果沒有,則發出一條消息,指示用戶必須將轉換後的變量添加到數據表中。 為此,右鍵單擊已轉換的列,然後選擇“添加到數據表”。
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add",
colList = dt << Get Column Names( String );
If( Contains( colList, (ll1 << Get Selected)[1] ),
ll2 << append( ll1 << get selected ),
Caption( "Transformed variables must be added to the data table" )
);
),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
我希望這有幫助。
溫迪