列差异 - JSL 语法大家好,
如何通过列引用访问列的内容? 由于我的列名随着脚本中的每个循环不断变化,我不能简单地使用列名来减去。
dt 是我的数据表,有 30 列。 我想用 dt[28]- dt[30] 创建一个新列。
谁能帮我语法?
对此,我真的非常感激。 谢谢。
回复:列差异- JSL 语法此示例说明在 1) 使用 JMP 13 中的表的矩阵表示法或 2) 设置公式时如何使用变量动态定义列。
dt = New Table("Table Subscripting",
New Column("a", Set Values([1 2 3 4 5])),
New Column("b", Set Values([44 22 77 55 99])),
New Column("c", Set Values([59, 58, 57, 56, 55]))
);
startCol = 1;
endCol = N Col(dt);
// New column with the diff between endCol and startCol can be filled
// 1) with static values using matrix notation (JMP 13),
dt << New Column("Delta");
dt[0, endCol + 1] = dt[0, endCol] - dt[0, startCol];
// 2) or by a Column Formula
// (expression must partly be pre-evaluated if variables are used)
F = Eval Expr(Expr(Column(endCol))[] - Expr(Column(startCol))[]);
dt << New Column("Delta2", Formula(Name Expr(F)));回复:列差异- JSL 语法嗨,马克,
显然,我不能使用这种语法
dt<< 新列( "增量",
数字,
公式( Column(dt,startcol)- Column(dt,endcol) )
);
startcol= 28(这是在特定列之后派生的)
和 endCol = ncols( dt );
由于我的数据表的列数在每次循环后不断变化,所以我不能使用数字。 还有别的办法吗?
回复:列差异- JSL 语法4 是否自动暗示它是表格的末尾? 由于数据表列不断变化,我可以使用吗?
dt[1::nrow(dt), endcol+1] = dt[1::nrow(dt), startcol] - dt[1::nrow(dt), endcol];
其中 endCol = ncols( kdt );和 startcol= 28(这是在特定列之后派生的)
我试图让一切都充满活力。
我认为这行不通。 你对这个梅兰妮有什么看法?回复:列差异- JSL 语法此外,如果您运行的是 JMP 13,则可以使用 dt[行,列] 下标到数据表中,并且可以使用范围 (1::4)。
这是一个简短的示例,它添加了一个新列并将其值设置为第 3 列 - 第 1 列:
dt = New Table( "Table Subscripting",
New Column( "a", Set Values( [1 2 3 4 5] ) ),
New Column( "b", Set Values( [44 22 77 55 99] ) ),
New Column( "c", Set Values( [59, 58, 57, 56, 55] ) )
);
dt << New Column( "new column" );
dt[1::nrow(dt), 4] = dt[1::nrow(dt), 3] - dt[1::nrow(dt), 1];
回复:列差异- JSL 语法引用列的方法不止一种:
- :姓名
- 列(“名称”)
- Column(数据表引用,"名称")
- 列(索引)
- Column(数据表引用,索引)
我怀疑基于 Column() 函数的最后两种形式对您的情况很有用。