用迭代评估 Col Mean大家好,
我在评估 col mean 函数时遇到问题。 如下所示,col mean(:age, :list_col_names[i]] 不会将项目插入数据表的列表中。 使用当前配置,当我打开数据表上的公式时,我得到“Col Mean( :age, list_col_names[i] )”,它与 list_col_names 列表中的任何内容都不对应。
list_col_names = fdt << getColumnNames( "String" );
For( j = N Items( list_col_names ), j > 0, j--,
If( Left( list_col_names[j], 2 ) != "10",
Remove From( list_col_names, j )
)
);
For( i = 1, i <= N Items( list_col_names ), i++,<BR /> fdt << New Column( list_col_names[i] || "_age", Numeric, Formula( Col Mean( :age, :list_col_names[i] ) ) ) <BR />);
在迭代中
回复:用迭代评估 Col Mean效果很好。 谢谢文斯!
回复:用迭代评估 Col Mean你不能这样做:list_col_names[i],你明确声明你有一个名为“list_col_names”的列并且你正在拉它的第 i 行。
尝试这个
Names Default to here(1);
fdt = open("$SAMPLE_DATA\Big Class.jmp");
list_col_names = {"sex", "name"};
For( i = 1, i <= N Items( list_col_names ), i++,
//this is just it doesn't keep the variable
//in the table because i will change and then your column name will change
Eval(
EvalExpr(
fdt << New Column( list_col_names[i] || "_age",
Numeric,
Formula( Col Mean( :age,
//replaces the string column name with an actual column
Expr(Column(fdt, list_col_names[i]))
) )
)
)
)
);