JMP 13.2.1 中是否有用于更新数据表的刷新选项你好,
我将一些数据从 Excel 导入到 JMP 13.2.1 中的数据表中。 现在,Excel 文件中的一些单元格已更新,我想知道是否可以从现在包含更新单元格的 Excel 文件导入数据(类似于引用 JMP 数据表中的数据)。 请注意,行数或列数以及列标题均已更改;只是数字不同。
谢谢
回复:JMP 13.2.1 中是否有刷新选项来更新数据表该脚本将在稍微不同的情况下提供帮助(需要使用适当的设置以及设置来更改“Wetterdaten.jmp”,最好使用初始报告的源脚本):
如果您像拜伦建议的那样更新表,您将保留表属性,但您将覆盖任何数据清理步骤,例如重新编码(覆盖)列或填充缺失值,... 它们将被更新表覆盖。
首先获取当前表的行数,然后从导入的表中删除它们,然后连接最终的新表将避免“您的所有工作都已通过更新被破坏”的痛苦觉醒。
// Define current data table (current data)
dt1 = Current Data Table();
// Check number of rows in actual data table (current recorded and cleaned data)
n_rows = NRows();
// Open Excel file to read new data -> will open a new data table with the same name and all the previous and new data
dt2 = Open("Wetterdaten.xlsx",
Worksheets( {"Import Data"} ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
)
);
// Delete in dt2 all previous worked on data using the n_rows information
dt2 << DeleteRows(1::n_rows);
// Concatenate tables: dt2 appended to dt1, so you avoid creating a new table
dt1 << Concatenate (dt2, Append to first table);
// Close support table dt2
Close(dt2);
当然,您可以随意进一步自定义此脚本。 例如 我会选择常规导入例程,将 Excel 导入的设置更改为原始数字 + 当前已导入的行数。 这样您就可以直接进行连接,而无需删除行。 而且我不喜欢硬编码的表名,所以我会首先检查表名并将其用作 Excel 导入中的表名。
只是一些想法......:)
excelFile = "Wetterdaten.xlsx";
cdt = Current Data Table();
cdtName = cdt << get name();
n_Rows = NRows();
dtHelp = Open(
excelFile,
Worksheets( {eval(cdtName)} ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2+ n_Rows ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 )
), Invisible
);
cdt << Concatenate (dtHelp, Append to first table);
Close(dtHelp);
回复:JMP 13.2.1 中是否有刷新选项来更新数据表谢谢菲尔。 现在可以了。 之前,我忽略了 Excel 工作表需要作为 JMP dt 打开这一点。
回复:JMP 13.2.1 中是否有刷新选项来更新数据表你好,
我不清楚您是否将 Excel 文件作为 JMP 表打开。 需要将其作为 JMP 表打开,以便您在更新表对话框中选择它。
问候,
菲尔回复:JMP 13.2.1 中是否有刷新选项来更新数据表感谢拜伦的详细回复。
问题是,即使仅打开 JMP dt 和 Excel(更新)文件,我也看不到“更新表”对话框中列出的 Excel 文件。 JMP 仍然显示 3 个没有相关性的文件名 + 它们现在未在计算机上打开(请参阅随附的屏幕截图)。 谢谢

回复:JMP 13.2.1 中是否有刷新选项来更新数据表好的,所以当您单击“表/更新”时,您会看到所有当前打开的表的列表。
更新本质上是一个内部连接。
当前活动表是您可以使用选定表更新的表。
如果没有其他桌子开放。
接下来,我在 JMP 中打开 Excel 表,添加脚本,为行着色,并执行除更改列名称之外的任何操作。
这是我的主表。
其次,我打开新版本的 Excel 表格。 在 JMP 之外,该表已被编辑、更改或更新。
执行表/更新操作:
选择第一个表(记住此时只有两个表打开,主表和新副本)
表/更新。
在对话框中选择新副本。
选择要匹配的列。
单击“确定”。
现在新表中的数据将覆盖主表中的数据。
新副本不需要是完整的表。 它可能只包含几行,或只包含几列。 无论哪种方式,它都会更新到主表。
回复:JMP 13.2.1 中是否有刷新选项来更新数据表谢谢拜伦。 表>更新菜单听起来很有希望。 当我单击要更新的 dt 中的“表”>“更新”菜单时。 它打开了“更新”对话框,但是在对话框的“更新 dt.. 使用数据”部分中,JMP 显示了一些与当前 dt 不相关的文件(数据表?)名称(不知道如何/为什么 JMP 选择显示这些文件)。 我找不到找到更新的 Excel 文件以从中提取更新数据的方法。 请问您知道如何选择更新的 Excel 文件来提取数据吗?谢谢
回复:JMP 13.2.1 中是否有刷新选项来更新数据表我会采纳菲尔的建议,但方向略有不同。
假设您已经对第一个表 (dt1) 进行了全部格式化和设置。
您可以使用源脚本来提取原始 Excel 表 (dt2) 的新“新鲜”副本
现在用表 2 更新表 1。(表菜单,更新)或使用这样的脚本。
注意:您可以使用多列为每行定义唯一标识符。
dt1 << Update(
With(dt2 ),
Match Columns( :Unique = :Unique )
);
回复:JMP 13.2.1 中是否有刷新选项来更新数据表是的,我希望如此。 源脚本重复导入到 JMP 表中。
我认为您必须编写进一步的数据预处理步骤的脚本。 例如:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Wait( 2 );
dt:Age << Data Type( "Character" );
dt:Height << Data Type( Numeric, 2 );
还:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Color or Mark by Column( :Age );
回复:JMP 13.2.1 中是否有刷新选项来更新数据表我右键单击 JMP 数据表中的“源”并选择“运行”,它创建了一个新的数据表,该数据表没有我在第一个数据表中创建的设置(按列和数据类型的行颜色等)。
回复:JMP 13.2.1 中是否有刷新选项来更新数据表你好,
如果您使用 Excel 导入向导从 JMP 打开 Excel 文件,您将在数据表中获得源脚本。 尝试一下。 这可能有帮助。
问候,
菲尔