清除选择中的数据我有一张大桌子,有几行和几列。 我想从表中删除一些数据。
例如删除第 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;