在同一脚本中创建多个数据表大家好,
我正在尝试在同一脚本中从创建的第一个数据表创建第二个数据表,这可能吗?
例子:
dt_= 打开(path_pst);
//第一个数据表
开始=新表(“W”,
新列(“S”),
新列(“Z”),
新列(“X”),
新列(“Y”),
新列(“E”),
新列(“W”),
新列(“S”),
添加行(545)
);
//一些计算
对于(i=1,i<=545,i++,
W:B[i] = ((dt_ - dt_*60)/8;
W:S[i] = dt_[i];
W:X[i] = dt_[i]/10000000;
W:Y[i] = dt_[i]/10000000;
W:E[i] = dt_[i];
W:W[i] = dt_[i];
W:S[i] = dt_[i];
);
//创建第二个数据表
开始=新表(“WIWM”,
新专栏(“Si”),
新专栏(“Ba”),
新列(“X1”),
新列(“Y1”),
新专栏(“En”),
新专栏(“Wa”),
新列(“M”),
添加行(109)
);
//根据创建的第一个数据表计算第二个数据表
对于 (i=1, i<=109,i++,
WIWM:Ba[i] = (W:B[i+109]+W:B[i+218]+W:B[i+327]+W:B[i+436])/4;
WIWM:Si[i] = W:S[i];
WIWM:X1[i] = W:X[i];
WIWM:Y1[i] = W:Y[i];
WIWM:En[i] = W:E[i];
WIWM:Wa[i] = W:W[i];
);
在第一个数据表按预期出现后,第二个数据表出现预期的行数,但空白(表示条件未运行)。
如果我将分离脚本,那么在第一部分中,我将执行第一个计算并保存它,在我将在保存的数据表上运行第二部分之后,我将为第二个数据表完成计算。
谢谢。
回复:在同一脚本中创建多个数据表https://community.jmp.com/t5/Uncharted/What-is-the-JSL-Matrix/ba-p/33349是一个简单的介绍。 也有文档:
http://www.jmp.com/support/help/Matrices.shtml
http://www.jmp.com/support/help/Matrix_Functions.shtml
回复:在同一脚本中创建多个数据表你可以给我一个例子吗?
谢谢
回复:在同一脚本中创建多个数据表既然您正在使用矩阵,那么我会问一个问题,为什么要将数据放入数据表中,然后将数据表视为矩阵持有者?您在脚本中执行的所有步骤都可以使用矩阵在开放 JSL 中轻松、快速地完成。
回复:在同一脚本中创建多个数据表你好,
感谢您的快速重播。
是的,我正在使用矩阵,第一个是 n 列,545 行(我可以使用 col 数字函数,但它是为了让你看到数字)
从第一个实际数据表中,我需要过滤并创建一个新的数据表 - “第一个”,也有 545 行和矩阵。
之后,我需要从“第一个”开始执行另一次计算,最终得到包含 109 行和 martix 的“第二个”。
谢谢。
回复:在同一脚本中创建多个数据表谢谢吉姆。 我将其添加到要进一步调查的事项列表中...像您一样,我不知道有类似的事情。
回复:在同一脚本中创建多个数据表你的剧本教会了我一些新东西。我找不到它的任何文档,但你的脚本显示它可以工作......有点。
在您的代码中,您通过以下方式引用数据表中的行和列
数据表名:列名[行]
所以当你指定
开始=新表(“W”,新列(“S”),.......
您将“5”行中的“S”列引用为
宽:S[5]
显然这有效。但是,稍后在脚本中,您尝试对您命名的数据表使用相同的逻辑
开始=新表(“WIWM”,新列(“Si”).........
并且您尝试引用回名为 W 的数据表
WIWM:SI[1] = W:S[1];
但这是行不通的。
问题是,设置数据表命名空间引用的正确方法是使用赋值语句分配命名空间名称,而不是数据表名称。我的新认识是,显然 JMP 会使用数据表名称作为名称空间,直到创建新数据表,然后它会丢失数据表名称名称空间链接。
最重要的是,如果您更改该行,您的代码将正常工作
开始=新表(“W”,
到
W = 新表("W",
和
开始 = 新表("WIWM",
到
WIWM = 新表("WIWM",
最后,打开某种文件并将其引用为
dt_ = 打开(path_pst);
你要打开的是什么?我假设它是一个矩阵。您能否就此问题回复我,以便我可以更好地了解您的代码中到底发生了什么。
回复:在同一脚本中创建多个数据表使用数据表目的由NewTable返回功能告诉变量在哪个表中。 桌子上的姓名不用于变量的范围。 第三个作业使用所有三个表。 我对所有内容都进行了唯一命名,但这对于范围界定来说不是必需的。 dt3: ,例如,设置范围,或查找后面的变量 z(在此示例中)的位置。
dt1 = New Table( "table name A", New Column( "x", values( [1 2 3] ) ) );
dt2 = New Table( "table name Squares", New Column( "y" ), addrows( 3 ) );
dt3 = New Table( "table name Cubes", New Column( "z" ), addrows( 3 ) );
For( i = 1, i <= N Rows( dt1 ), i++,
dt2:y[i] = dt1:x[i] ^ 2;
dt3:z[i] = dt1:x[i] * dt2:y[i];
);
small table of Cubessmall table of Cubes小立方体表