數據表的子集<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我是JMP編碼的新手,需要你的幫助來解決這個問題。
基本上我要做的是導入一個excel文件並將其保存為數據表,並且我通過使用此命令實現。
打開數據庫(“DSN = Excel Files; DBQ =”xyz“.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;”,“SELECT * FROM`'CPASU by queue $'`”,“CPASU by queue $ “);
到現在為止還挺好。
然後從CPASU通過已創建的隊列數據表 - 我正在嘗試使用以下命令創建該數據表的子集
(數據表(“CPASU by queue $”)<< SELECT WHERE AND(FWEEK> 201201,預測精度> 0)
<<子集(
鏈接,
輸出表名稱(“預測準確度$”)));
現在,當我執行這些命令時,我完全能夠按隊列創建數據表CPASU,並且還能夠創建預測精度的子集表子集。但是,子表中返回的行不會按照我在select子句中給出的條件返回。它返回主數據表中的所有行(CPASU by queue)...
有人可以幫我解決這個問題嗎?
此外,如果有一本書我可以遵循以了解JMP JSL ....我試圖遵循由JMP GUI自動創建的腳本,但到目前為止它一直是一場噩夢。
提前感謝您的幫助。
Re:數據表的子集您的IF語句過早關閉了括號並且您錯過了逗號:
如果 ( FOUND_ROWS > 0,
DP << 子集 ( 輸出表名稱 ( “預測準確性的子集$” )) ;
);
Re:數據表的子集好的問題再次出現......不確定代碼發生了什麼
DP = 數據表 ( “CPASU by queue $” ) << SELECT WHERE ( 和 ( FWEEK > 201201 ,沒有蒙面 != 0 )) ;
FOUND_ROWS = NROWS ( DP << 獲取選定的行 ) ;
如果 ( FOUND_ROWS > 0 )
DP << 子集 ( 輸出表名稱 ( “預測準確性的子集$” )) ;
CPASU by queue是從代碼中較早的excel文件創建的數據表。請幫忙。
謝謝,
Re:數據表的子集記住在好的建議後標記答案,並標記正確的答案和有用的答案(=使論壇的使用更有效率)!
Re:數據表的子集是的我認為問題出在括號中...現在有效...謝謝..
Re:數據表的子集看起來您在第二個子集選擇中放錯了一些括號。你必須把And()放在Select Where()裡面。
像這樣:
DP = 數據表 ( “CPASU by queue $” ) << SELECT WHERE ( 和 ( FWEEK > 201201 ,沒有掩飾 != 0 ) ) ;
Re:數據表的子集我試過這樣做,但它仍然沒有返回任何新的結果。以下是完整的代碼。
// - 打開文件並在JMP中建立連接。
打開數據庫(“DSN = Excel文件; DBQ = C:\ Users \\ Documents \\ JMP Analysis \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;”,“SELECT * FROM`'CPASU by queue $'`“,”CPASU by queue $“);
//創建第一個子集
(數據表(“CPASU by queue $”)<<選擇位置(AND(FWEEK> = 201201,FWEEK!= 201248,FWEEK!= 201247,FWEEK!= 201243,實際CPASU> 0))<<子集(已鏈接) ;
當前數據表(數據表(“CPASU的子集由隊列$”)));
//為預測準確性創建第二個子集
dp =(數據表(“CPASU by queue $”)<< SELECT WHERE AND(FWEEK> 201201,No Masking!= 0));
found_rows = nrows(dp <<獲取選定的行數);
if(found_rows> 0,
// 然後
dp << subset(輸出表名稱(“預測準確度$”)),
//別的
寫(“沒有選擇行”)
);
問題出在第二個子集中。雖然它正在創建第二個子集,但它返回與第一個子集的查詢相同的結果集,並且我非常確定在數據表CPASU中,隊列中有幾行與SELECT WHERE AND的Sql條件匹配(FWEEK> 201201,沒有掩蔽!= 0));
請幫忙......謝謝
Re:數據表的子集如果為搜索找到任何行,則只應創建子集。 如果沒有找到行,則子集將與原始表相同。 你需要這樣的東西。 我為可讀性添加了一些代碼改進。
DT = 打開數據庫 ( “DSN = Excel文件; DBQ =” XYZ “.XLSM; DriverId = 1046; MAXBUFFERSIZE = 2048;將PageTimeout = 5;” ,
“SELECT * FROM`'CPASU by queue $'`” , “CPASU by queue $” ) ;
//根據您的條件選擇行
DT << 選擇在哪裡 ( : FWEEK > 201201 & : 預測的準確性 > 0 ) ;
//查看是否選擇了任何行
FOUND_ROWS = NROWS ( DT << 獲取選定的行 ) ;
如果 ( FOUND_ROWS > 0 ,
// 然後
DT << 子集 ( 輸出表名稱 ( “預測準確性的子集$” )) ,
//別的
打印 ( “沒有選擇任何行” )
) ;
有幾本優秀的JMP腳本書。 JMP附帶了JMP腳本PDF手冊,但也有這本書跳轉到JMP(r)腳本作者:Wendy Murphrey和Rosemary Lucas,ISBN 978-1-59994-658-0