進口:很多額外的col。用戶選擇他們想要的?早上好,
所以我是jsl的新手並試圖解決這個問題。 我從我們的服務器獲得的數據集有大量額外的列,通常col是空白的。 我希望用用戶選擇的對話框啟動我的大多數腳本,允許他們選擇/添加/刪除他們選擇的列,並可能將它們重新排列為首選順序?有幫助嗎?
我們說col是:
| 山口# | COLNAME | |
| 1 | date_export | |
| 2 | 產品類別 | |
| 3 | 零件號 | |
| 4 | 食譜 | |
| 五 | date_run | |
| 6 | measurement_type | |
| 7 | 值 | |
| 8 | 工具 | |
| 9 | 目標 | |
好的,所以不需要這些col中的一些,並且從人類觀看的角度看它們都絕對是亂序的。 理想情況下,我希望腳本能夠自動選擇並訂購以下內容:
Col#:2,8,4,5,6,7,9
然後可能有一個用戶對話框,允許用戶根據需要選擇任何其他列添加到重新格式化的輸出。
你怎麼看?
回复:導入:很多額外的col。用戶選擇他們想要的?假設我理解你的問題:
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA\Air Traffic.jmp" );
// Define list of columns to delete
DelList = {"Carrier Code","Flight Number"};
// Delete Columns
dt << Delete Columns(DelList); 回复:導入:很多額外的col。用戶選擇他們想要的?真棒!如何預先確定列名列表?就像我的數據表一樣,有幾十個或多個列(通常不是空的)。
選擇colname(crap1,crap2,crap3 ......)
刪除所選列
然後繼續允許用戶選擇修剪後的剩餘部分?
回复:導入:很多額外的col。用戶選擇他們想要的?這是一段代碼,我用它來創建一個表腳本,當我讀取數據時,它將刪除空列:
// add a table script that will remove empty columns
dt << Set Property( "Remove Empty Columns",
dt = Current Data Table();
lstToDelete = {};
For (i=1,i<=NCols(dt),i++,
col = Column(dt,i);
If (Col Number(col)==0,
InsertInto(lstToDelete,i)
)
);
If (NItems(lstToDelete)>0,
dt << Delete Columns(lstToDelete)
);
);回复:導入:很多額外的col。用戶選擇他們想要的?我喜歡這個,選擇所需的col,然後反轉它並刪除不需要的col。
你有關於運行一個預處理的建議,我可以大規模“刪除”預先指定的col來減少用戶選擇嗎?
不幸的是,我的數據文件帶有幾十個不必要的列,用於不需要的東西。
也許我可以寫入每個dt = open()的開頭,刪除已知的'不需要的cols'?
回复:導入:很多額外的col。用戶選擇他們想要的?dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Open a window for user selection
NW1 = New Window("User Selection",
<< Modal,
V List Box(
Lineup Box(
Lb1 = List Box(ColNames);
)
),
H List Box(
Button Box("OK",
// Unload User Inputs
Rb1Val = Lb1 << Get Selected();
)
)
);
// Select Columns
for(i = 1, i <= N Items(ColNames), i ++,
If(Contains(Rb1Val,ColNames[i]),
Col = Column(dt,i); ;
Col << Set Selected(1);
);
);
// Delete Unwanted Columns
dt << Invert Column Selection ;
dt << Delete Columns ;回复:導入:很多額外的col。用戶選擇他們想要的?希望外來文件格式的性質是穩定的。您可以嘗試將此參數用於Open()函數以進行導入:
Select Columns( "col", ... )
假設您在打開時將數據引用存儲在變量(例如dt)中,則可以使用此模式迭代地重新排列列:
dt << Go to Column( col ref ) // select column to move
<< Move Selected Columns( ... ) // move column to new location
<< Clear Column Selection; //
希望這個回复讓你繼續前進。
回复:導入:很多額外的col。用戶選擇他們想要的?嘿馬克,
所有好問題。 我希望我可以在前端編寫查詢腳本,但我的公司的數據庫被鎖定。 我們必須提出請求,我們得到一個扁平的excel .csv文件,其中包含所有這些不必要的列和命名不佳的標題(如35列)。 我正在努力獲得只讀訪問權限,但這是一個不同的問題。
回复:導入:很多額外的col。用戶選擇他們想要的?源文件是平面還是關係?什麼是源文件類型?您導入了哪些文件?你必須導入整個文件嗎?
你能查詢數據庫的結果嗎?如果是這樣,您可以構建一個查詢來為您提供所需的內容。