就像图片一样将多列转换为一列。我需要这张桌子的帮助。
我正在尝试旋转桌子的一部分。
该表有大约 300 列和 30 行。
我想保持第 12 到 30 行与第 11 列相同。
并旋转其余的列(从 12 到末尾),使它们就像图片一样。
我认为解决方案是:从 12 到 30 的每一行将有 288 列。
请参阅图片了解我想要的想法。
如果您可以发送代码,那就太好了。
第一张图片显示了实际的表。
第二张图片显示了我想要的解决方案。


回复:将多列转换为一列,就像图片一样。这是一个适用于您提供的示例数据表的脚本。顺便说一句,如果附上数据表的副本会更方便,而不必手动创建它。除此之外,我相信只要前 11 列保持静态、数据从第 3 行开始,并且第 11 列之后的所有列都被视为要处理的列,脚本就会工作。
names default to here(1);
dt=current data table();
// Find the number of columns to process
numberOfMeasurements = N Cols(dt) - 11;
// Add the 3 new columns to place the measurements into
dt << Add Multiple Columns( "Rotated", 3,After(:column 11), Character );
// Add in the number of empty rows required for all of the rotations
For(i=N Rows(dt),i>=3, i--,
dt << Add Rows( numberOfMeasurements - 1, after(i) );
);
// Move the data into the required new cells
For( theRow = 3, theRow <= N Rows(dt), theRow = theRow + numberOfMeasurements,
For( theCol = 12 + 3, theCol <= N Cols(dt), theCol++,
:Rotated 1[theRow + theCol-12-3] = column(theCol)[1];
:Rotated 2[theRow + theCol-12-3] = column(theCol)[2];
:Rotated 3[theRow + theCol-12-3] =
column(theCol)[theRow];
)
);
使用的所有函数都记录在脚本索引中
帮助==>脚本索引
最后,我假设您是 JMP 新手,因此我提供此脚本是为了说明 JMP JSL 几乎可以执行您需要执行的任何操作。社区论坛不是要求个人为您编写代码的地方。该小组的目的是帮助遇到问题的 JMP 用户。假设提出问题的成员是来学习 JMP 的,以便他们在未来成为更熟练和更独立的 JMP 用户。
回复:将多列转换为一列,就像图片一样。
这是实际的文件,你能解释一下我怎样才能拆分表格并再次链接它们吗?
回复:将多列转换为一列,就像图片一样。首先,您的原始数据表不适合 JMP 表的结构。JMP 不是电子表格。它是一个基于分析列的数据表。JMP 统计和图形平台采用分析数据表形式。因此,尝试在数据表中转置列和行时,您将无法使用
表格==>转置
平台。
此外,您将无法直接使用许多 JSL 数学函数,因为为了让表格按照您拥有的方式构建,所有列以及所有单个单元格都将是数据类型字符,而不是数字。如果第 12 行及之后的数据位于 JMP 数据表中,使用起来会很简单
表==>拆分
将数据更改为您想要的形式。
但即便如此,您也可以编写一段 JSL,将数据表中的子区域转换为新格式。JMP 数据表可以被引用为逐列矩阵,并且可以编写一个程序,从数据表(“1911-15 V1 500”)[5,14] 中获取值并将该值放入任何其他所需的行/列单元格。这可以放入 For() 循环结构中,使代码更复杂,但关键是,在我看来,必须编写一段 JSL 来进行转换。