选择数据表中的重复行我确信这个问题之前一定已经解决过,但我在论坛上找不到它,所以如果答案非常明显,我深表歉意。
我有一个大型数据表,我知道它包含重复的行。 我想要做的是轻松选择这些重复项,然后删除或排除进一步分析。 是否有脚本可以在 JMP v8 和 v9 中执行此操作?回复:选择数据表中的重复行查看脚本索引中的“选择重复行”
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select duplicate rows( Match( :age, :height ) );
回复:选择数据表中的重复行谢谢你! 我发现这对于处理重复项非常快速且有帮助回复:选择数据表中的重复行这是我用来查找完整重复项的方法。 您可能想做的另一件事是解锁汇总表中的列。
这是执行此操作的脚本。
dt = current data table();
colList=dt<
show(collist);
for (i=1,i<=nitems(collist),i++,
collist<< lock(0);
);
回复:选择数据表中的重复行这是一个通用脚本,它执行我上面描述的操作。 适用于任何表,因为不需要指定列号和名称。
dt = Current Data Table();
dt2 = Eval(
Parse(
Eval(
Expr(
"dt << Summary(group(" || Substitute(
Substitute( Char( dt << get column names() ), "}", "" ),
"{", ""
) || "))"
)
)
)
);
dt2 << delete column( Eval( N Col( dt ) + 1 ) );
该脚本通过从列列表中删除大括号来填充 Group(column1, column2,...)。 有人知道一种更简单、更简单的方法来使用列的列表变量作为 Summary() 和类似函数中的参数吗?
如果重复项是由列的子集而不是所有列定义的,一种方法是将上述脚本中的“获取列名称”替换为“获取所选列”。 但是,必须首先在数据表中手动选择列,并用原始表更新汇总表以恢复剩余列。
回复:选择数据表中的重复行如果重复的整行都是相同的,那么您可以使用tables命令中的summary命令。 将所有列添加到“组”框中,然后按确定。
这应该会给你一个没有重复项的表。 唯一的区别是该表包含一个新列“N 行”并且排序可能已更改。
如果您想对其他表(具有相同的列集)重复此操作,则在左侧面板“源”处的红色三角形下,您可以选择复制脚本并将其粘贴到新的脚本窗口中。
要摆脱 N 行列,您可以添加行
当前数据表() << 删除列(N行)
到脚本。回复:选择数据表中的重复行彼得,
对于帖子中缺乏清晰度表示歉意。
在我正在查看的示例中,我有 51 行和 19 列的字符和数字数据,当所有列值与另一行(数字或字符)相同时,我将其分类为重复项。
我对 JSL 一无所知,所以我尝试复制并粘贴到一个新脚本中,但出现了多条消息,基本上说它不起作用。 有人可以帮助将其转换为正确的格式吗?
来自上一个链接的脚本
dt << CurrentDataTable;
TotalRows = NRows(dt);
eqFlag = 1;
deleteFlag = 0;
For(i=1, i<TOTALROWS></TOTALROWS>
回复:选择数据表中的重复行快速搜索发现了这个线程:
https://community.jmp.com/t5/Discussions/find-and-drop-duplicate-rows/mp/370#M370
基本上,您可以使用摘要命令来生成没有重复项的表。
问候,
彼得
回复:选择数据表中的重复行有多种方法,但它们取决于您的数据。 你怎么知道一行是重复的? 即,如果一行是重复的,它的所有列值是否与另一行相同?
是否有一个列值(如键或索引)可用于检测重复项? 或者您需要查看整行吗?
给我们更多的东西让我们继续...
问候,
彼得