清除選擇中的數據我有一張大桌子,有幾行和幾列。 我想從表中刪除一些數據。
例如刪除第 2 行到第 1 列的數據。 10 基於某些標準。 但,保持第 11 列同一行中的數據完整。 我的代碼如下:
cdt = Current Data Table();
cdt << select columns( 1 :: 21 );
cdt << select where(Is Missing(:Name("Record no.")));我想刪除已選擇的數據。
一定有一個簡單的方法可以做到這一點,但我真的不知道該怎麼做。 我可以右鍵單擊並選擇清除。
但是,我想要一個 jsl 腳本代碼,以便該任務可以自動化。
自動化和腳本編寫消費者和市場研究回复:清除選擇中的數據非常感謝。 我非常感謝您花費大量時間幫助我解決問題並了解 JMP 的真正含義。 人們總是說 JMP 不是 excel,但當您從 excel 遷移到 JMP 時,很難牢記這一點。 此外,jsl 讓人認為 JMP 具有類似於 MATLAB 或 Python 的功能,但這可能並不總是正確的。
我非常同意 JMP 培訓和教育的必要性。
和我一樣,我們這裡的大多數人都是在開始在該行業工作後開始使用 JMP 的。
這可能不利於學習,但有時在論壇中尋求解決方案比閱讀文檔更能獲得更快的結果。
文檔(這是正確的做法)。 到目前為止,您在社區帖子中的解決方案對我有很大幫助,我非常感謝這一切。
回复:清除選擇中的數據在某些情況下,回到您使用多年的工具,了解其內部和外部,是快速/正確的做法。對於 JMP 新用戶來說,Excel 無疑是主要的記錄工具。
特別是,鑑於 Excel 是基於 exCELL 的,而 JMP 是基於列的,JMP 將不具有處理諸如在給定列中向上或向下移動某些單元格之類的功能。這是因為 JMP 假定同一行中的列值之間存在關係。Excel 沒有這樣的假設。另一方面,由於 JMP 是基於列的,因此它在許多功能、平台等中都利用了這一點。在許多情況下,人們需要做一些額外的工作,並讓它完成 JMP 非常容易完成的一些事情。Excel 的 Vlookup 是比 JMP 的更新平台需要更多努力來“查找”數據的項目之一。相反,您向社區提出的任務,即在列中向上移動單元格,需要 JMP 做更多的工作才能完成。與 Excel 相比,JMP 的真實情況之一是 JMP 更廣泛/更複雜,因為它的分析目的。所以確實需要更多的培訓/教育。正是出於這個原因,您會看到社區成員敦促個人閱讀 JMP 文件。它們確實是真正掌握 JMP 的用途以及實現方法的唯一方法。
下面的腳本將每列中的非缺失行向上移動。這只是我設想的實現這一目標的方法之一。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt1 = dt << subset(selected rows(0), selected columns(0));
dt1 << set name( "Example 1" );
// randomly clear some data from the different columns
// to have different cells blank or with missing values
For( i = 1, i <= N Cols( dt1 ), i++,
For( k = 1, k <= 5, k++,
If( Column( dt1, i ) << get datatype == "Character",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = "",
Column( dt1, i )[Random Integer( 1, N Rows( dt1 ) )] = .
)
)
);
// For the example, create a copy of the Example 1 data table to work on,
// so the beginning and modified tables can be viewed
wk1 = dt1 << subset(selected rows(0), selected columns(0));
wk1 << set name("Working 1");
// Remove the missing cells for each column and move up the remaining
// rows to fill in
For(i=1,i<=n cols(wk1),i++,
dtTemp=wk1<<SUBSET></SUBSET>回复:清除選擇中的數據目前,我不知道如何做到這一點。 我現在解決這個問題的方法是
將jmp表導出到excel中。
cdt << Save("C:\Users\Neal\Desktop\Data entry.xlsx");
導出到 Excel 後,我刪除了空單元格並將數據放回 jmp 表。
回复:清除選擇中的數據你嘗試了什麼?
回复:清除選擇中的數據謝謝你的解決方案。 有用。 但是,我現在還有另一個問題。
刪除所有單元格後,我想合併數據。即,數據將向上移動以採取
刪除後留下的空間。 有jsl代碼可以實現嗎?回复:清除選擇中的數據這是編碼的另一種方法。它處理列的數字範圍,並假設它們是字符列,因此它將它們的值設置為空白“”。
names default to here(1);
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
cdt[rows,4::5]= "";回复:清除選擇中的數據您的解決方案適用於數字列。 但是,非數字的呢?
另外,不要一欄接著另一欄。 是不是可以只做一個範圍。 類似 1::4 的東西?
回复:清除選擇中的數據好的,抱歉,我又看了一遍你的描述:
cdt = open("$SAMPLE_DATA/Big Class.jmp");
rows = cdt << get rows where (:sex=="F");
column(cdt,4)[rows] = .;
column(cdt,5)[rows] = .;回复:清除選擇中的數據我只想刪除選定的內容。 如果我使用
Delete Rows
它將刪除整行。 正如我所說,我不想刪除整行。
回复:清除選擇中的數據...或者也許我很愚蠢,你的意思是你想清除所選單元格的內容?
回复:清除選擇中的數據我認為您要求的是,一旦您選擇了某些行,如何刪除它們?您可以使用消息刪除行:
dt << delete rows;
如果您檢查腳本索引,您將看到只有選定的行被刪除!
回复:清除選擇中的數據您的解決方案是清除選擇。
我正在尋找“清除”——刪除所選內容。
抱歉,我沒能解釋清楚。
回复:清除選擇中的數據您可以使用消息清除列選擇和清除選擇分別用於列和行。
cdt = open("$SAMPLE_DATA/Big Class.jmp");
cdt << select columns(4::5);
cdt << select where(:sex=="F");
wait(2);
cdt << clear column selection;
cdt << clear select;