如何選擇具有相同值的列你好,
如何選擇具有相同值的列(繼續和名義)?
謝謝,
阿薩夫
回复:如何選擇具有相同值的列我認為您要求的是一種查找在整個列中只有一個值的所有列的方法,例如只有 1 的列或充滿“X”的列。
如果是這樣的話,我發現列查看器( Cols->列查看器) 是一個很好的工具。

您可以按 N 個類別或 Std Dev 列對 Summary Statistics 表進行排序,以獲得只有 1 個類別或 Std Dev 為 0 的所有列。

回复:如何選擇具有相同值的列@Assaf1 ,
你真正想要的是什麼? 您是否試圖找到所有列中的所有值都與列 1 中的所有值相同的列 2 ? 如果是,我看不出你的邏輯是如何工作的。 您顯示的邏輯僅比較最大值和最小值之間的增量,因此,如果您有一列最大值為 6,最小值為 -6,另一列最大值為 7,最小值為 -7,它們都將滿足即使列中的值不一定相同,您的情況也是如此
回复:如何選擇具有相同值的列謝謝你的支持。
我的問題是選擇所有具有相同值的列(而不是打開包含此類列列表的新表)。
動機是識別這些列並讓我決定是否要刪除這些列或隱藏...
我找到了滿意的解決方案:
dt = Current Data Table();
dt << clear column selection ();
m = dt << getAllColumnsAsMatrix;
wait (0);
for(c=1, c<=NCol(m), c++,
if( (max(m[0,c]) - min(m[0,c]) == 0),
column (dt, c) << set selected ();
);// Loop over the columns and record which are contains only single value
);
非常感謝
回复:如何選擇具有相同值的列您沒有指定正在使用的 JMP 版本。 JMP 12 及更高版本中提供了表摘要 > N 類別。 腳本也作為文件附加。
Names Default to Here(1);
dt = Open("$sample_data/semiconductor capability.jmp");
cnames = dt << get column names(Continuous|Ordinal|Nominal, "String");
uni = dt << Summary( Invisible,
N Categories( evalList(cnames) ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to Original Data Table(0)
);
nmiss = dt << Summary( Invisible,
N Missing( evalList(cnames) ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to Original Data Table(0)
);
ftbl = uni << Stack( Columns(EvalList(cnames) ),
Source Label Column( "Name" ),
Stacked Data Column( "N Categories" )
);
Close(uni,NoSave);
tmptbl = nmiss << Stack(Invisible, Columns(EvalList(cnames) ),
Source Label Column( "Name" ),
Stacked Data Column( "N Missing" )
);
Close(nmiss,NoSave);
ftbl << Update( With( tmptbl ) );
Close(tmptbl, NoSave);
(ftbl << select where ( :N Categories > 1)) << delete rows;
//Note you can select columns where they have at least k unique values.回复:如何選擇具有相同值的列@Assaf1 ,
你可以嘗試這樣的事情,我很確定總有其他方法可以達到同樣的效果
dt = New Table("Test");
Vals = Index(1,4,1);
dt << New Column("A",Numeric,Continuous,<< Set Values(Vals))
<< New Column("B",Numeric,Continuous,<< Set Values(Vals))
<< New Column("C",Character,Continuous,<< Set Values({"a","b","c","d"}))
<< New Column("D",Character,Continuous,<< Set Values({"a","b","c","d"}));
AVals = dt:A << Get Values;
BVals = dt:B << Get Values;
CVals = dt:C << Get Values;
DVals = dt:D << Get Values;
If(All(AVals == BVals),Print("It's a match"), Print("They aren't same"));
If(All(CVals == DVals),Print("It's a match"), Print("They aren't same")); 回复:如何選擇具有相同值的列使用行 - 行選擇 - 選擇位置 - 並選中顯示比較列的框。您可以選擇 2 列並選擇在這兩列中匹配的所有行。如果您想將其擴展到更多列,只需再次執行此操作,但請確保將下拉菜單更改為“限制”當前選擇。
回复:如何選擇具有相同值的列只是為了澄清-不是複制的列,而是所有行都包含相同值的列。
再次感謝!