如何选择具有相同值的列你好,
如何选择具有相同值的列(连续和标称)?
谢谢,
阿萨夫
Re: 如何选择具有相同值的列我认为您要求的是一种方法来查找在整个列中只有一个值的所有列,例如只有 1 的列或充满“X”的列。
如果是这样的话,我发现列查看器(列->列查看器) 是执行此操作的好工具。

您可以按 N 个类别或 Std Dev 列对 Summary Statistics 表进行排序,以获得只有 1 个类别或 Std Dev 为 0 的所有列。

Re: 如何选择具有相同值的列@阿萨夫1 ,
你真正想要的是什么? 您是否要查找第 1 列中的所有值与第 2 列中的所有值相同的所有列? 如果是,我看不出你的逻辑是如何工作的。 您显示的逻辑仅比较最大值和最小值之间的差值,因此如果您有一列最大值为 6,最小值为 -6 而另一列最大值为 7,最小值为 -7,它们都会满足您的情况,即使列中的值不一定相同
Re: 如何选择具有相同值的列感谢您的支持。
我的问题是选择所有具有相同值的列(而不是打开包含此类列列表的新表)。
动机是识别这些列并让我决定是否要删除这些列或隐藏...
我找到了满意的解决方案:
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
);
多谢
Re: 如何选择具有相同值的列您没有指定您使用的 JMP 版本。 表汇总 > N 类别在 JMP 12 及更高版本中可用。 脚本也作为文件附加。
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.Re: 如何选择具有相同值的列@阿萨夫1 ,
你可以尝试这样的事情,我很确定总有其他方法可以达到同样的效果
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")); Re: 如何选择具有相同值的列使用行 - 行选择 - 选择位置 - 并选中显示比较列的框。您可以选择 2 列并选择在这两列中匹配的所有行。如果您想将其扩展到更多列,只需再做一次,但请确保将下拉菜单更改为“限制”为当前选择。
Re: 如何选择具有相同值的列只是为了澄清 - 不是重复的列,而是所有行都包含相同值的列。
再次感谢!