刪除具有相同值的列當我使用一些參數運行我的模型時遇到問題。 所以我想在運行模型之前做一些數據清理。 有沒有快速刪除具有相同值的列的方法? 請告知如何使用 JSL 或任何其他可能適合的方式來做到這一點?
腳本Re: 刪除具有相同值的列TXNELSON 的以下帖子適用於 JMPv13.2.1 。Re: 刪除具有相同值的列這樣可行 !!! 謝謝。Re: 刪除具有相同值的列我在 JMP 13.2.1 中運行它並且它有效.....您需要做的就是刪除代碼中的行
dt << select columns(to_delete_lst);
dt << delete columns;
並將它們替換為
dt << delete columns( to_delete_lst);
Re: 刪除具有相同值的列對不起,我無法回答,
該代碼在我的計算機上使用 Win10 的 JMP 15 上運行良好,
最後兩個步驟是非常基本的命令,應該已經在 JMP 13 中實現了(但我無法檢查)。
你能執行這兩個步驟嗎
分別一個接一個?例如,通過在編輯器中標記腳本行並按下播放按鈕。
問題到底出在哪裡?
Re: 刪除具有相同值的列當我運行這段代碼時,它正確識別了重複的列,但實際上並沒有刪除它們。日誌顯示沒有錯誤。
“高度等於 height_copy”
“權重等於 weight_copy”
to_delete_lst = {7, 6};
腳本[]
我正在運行 v13.2.1
Re: 刪除具有相同值的列你好,
基於後來的帖子,我認為我們沒有理解“相同價值觀”的說法;我們將每行解釋為第 1 列 = 第 2 列,但我推測您的意思是每行中具有相同值的任何列(即 0 StdDev)。 那是對的嗎?
如果是這樣,我或我更有經驗的人應該能夠提供一個相對較短的腳本。
最好的,
TSRe: 刪除具有相同值的列嗨尼爾森,
謝謝你的建議。但是響應篩選佔用了過多的處理時間並且並不理想。 跑了 45 秒還沒處理完一半。

Re: 刪除具有相同值的列這是如何做到這一點的不同看法。它使用 R 方作為匹配數據的指標。
Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << get column names( continuous );
obj = dt <<
Response Screening(
Y( Eval( colNames ) ),
X( Eval( colNames ) )
);
dtCalc = obj << get PValues;
dtCalc << select where(Round(:RSquare,4) != 1 | :X == :Y );
try( dtCAlc << delete rows );
dtCompare = dtCalc << subset( selected rows(0), columns("X","Y"));
close(dtCalc,nosave);
for each row(
If(:X > :Y,
hold=:X;
:X = :Y;
:Y = hold;
)
);
dtFinal = dtCompare << Summary(
Group( :X, :Y ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 )
);
close( dtCompare, nosave );Re: 刪除具有相同值的列Georg,感謝列查看器的想法。
我想我會使用列查看器 -> 摘要 -> 按 stdev = 0 對錶進行排序。 然後我可以稍後刪除這些列。Re: 刪除具有相同值的列我也不確定:)
這意味著,您需要更具體地了解您的需求。
如果你只是想探索一個大表的值,你可能想使用列查看器
列->列查看器
在那裡你可以很容易地比較一個大表的列。
Re: 刪除具有相同值的列感謝 JSL。 但我不確定它是否符合我的要求。Re: 刪除具有相同值的列這一個刪除列:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// make some copies of columns
dt << New Column( "weight_copy", set each value( :weight ) );
dt << New Column( "height_copy", set each value( :height ) );
to_delete_lst = {};
For( i = 1, i < N Col( dt ), i++,
For( j = i + 1, j <= N Col( dt ), j++,
If( (Column( i ) << get data type) == (Column( j ) << get data type),
// all celles are equal ?
If( Mean( (Column( i ) << get values) == (Column( j ) << get values) ) == 1,
Print( (Column( i ) << get name) || " equal to " || (Column( j ) << get name) );
insert into(to_delete_lst, j);
);
);
)
);
// show list of equals
Show(to_delete_lst);
wait(3);
dt << select columns(to_delete_lst);
dt << delete columns;Re: 刪除具有相同值的列我不想刪除行。 我想刪除具有相同值的列。Re: 刪除具有相同值的列我不確定我是否理解你的意思,
對於建模,您可以選擇您認為重要的列,因此無需刪除列。
您想刪除列具有相同值的一些行嗎?
下面是它的代碼:
否則請詳細描述您需要什麼,一個例子可能會很有幫助。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
wait(3);
dt << Select duplicate rows( Match( :age ) );
dt << delete rows;