你好,
我有类似的数据,如下所示。 我需要使用公式为每个服务变量创建一个列:Col Sum(服务 1、ID、入院日期)。 我有近 100 个不同的服务变量,因此手动执行此操作是不可能的。 只有我传递给 Col Sum 的第一个参数会发生变化,并且每个公式的变量(ID 和入场日期)都保持不变。 有没有一种方法可以使用 JSL 脚本创建列并将变量动态传递给函数,并使用用于区分源和输出的变量分配列名。 Service1_1 将是输出列之一。
提前致谢。
| ID | 年龄 | 入学日期 | 出院日期 | 订购日期 | 服务 1 | 服务 2 | 服务 3 | 服务 1_1 |
| 12 | 25 | 13/2/2012 | 1/4/2012 | 2012 年 1 月 3 日 | 0 | 1个 | 0 | 1个 |
| 12 | 25 | 13/2/2012 | 1/4/2012 | 23/3/2012 | 1个 | 1个 | 1个 | 1个 |
| 13 | 17 | 27/8/2015 | 2015 年 10 月 31 日 | 2015 年 3 月 9 日 | 0 | 1个 | 1个 | 2个 |
| 13 | 17 | 27/8/2015 | 2015 年 10 月 31 日 | 17/9/2015 | 1个 | 1个 | 0 | 2个 |
| 13 | 17 | 27/8/2015 | 2015 年 10 月 31 日 | 28/10/2015 | 1个 | 0 | 0 | 2个 |
| 14 | 45 | 2016 年 1 月 1 日 | 13/2/2016 | 2016/1/31 | 0 | 0 | 1个 | 1个 |
| 14 | 45 | 2016 年 1 月 1 日 | 13/2/2016 | 8/2/2016 | 1个 | 1个 | 0 | 1个 |
这是一个我认为会有所帮助的脚本
Names Default To Here( 1 );
dt = Current Data Table();
nc = N Cols( dt );
For( i = 6, i <= nc, i++,
Eval(
Substitute(
Expr(
dt << New Column( __newname__,
formula( Col Sum( __oldname__, :ID, :Admission date ) )
)
),
Expr( __newname__ ), Column( i ) << get name || "_1",
Expr( __oldname__ ), Parse( ":" || Char( Column( dt, i ) << get name ) )
)
)
);<BR /><BR />
此外,您可以使用
列==>新列
并根据需要指定尽可能多的新列。然后,输入新列的第一列的公式。最后,选择该列和所有其他新列,然后转到
Col==>标准化属性
选择
列属性==>公式
单击“替换列引用”复选框
然后点击“确定”
它将公式从第一个新列复制到所有其他列,替换服务 N 列