我有需要频繁重新编码的列组。 它只需复制增强日志即可工作,但如何将它们组合在一起以使代码不那么笨拙?
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Change column name: name → Student's name
Data Table( "Big Class" ):name << Set Name( "Student's name" );
// Change column name: age → Student's age
Data Table( "Big Class" ):age << Set Name( "Student's age" );
您可以使用列名称重新编码
列 => 列名称 => 重新编码列名称...
如果执行一次,您将在日志中看到 JSL,了解将创建重新编码的 JSL
// Recode column names
Local( {dt = Data Table( "Big Class" ), names},
names = Recode(
dt << Get Column Names( String ),
{Map Value(
_rcOrig,
{"age", "s age", "height", "s height", "name", "s name", "sex", "s sex",
"weight", "s weight"},
Unmatched( _rcNow )
)}
);
For Each( {name, i}, names, Column( dt, i ) << Set Name( name ) );
);
获取列名称列表也很容易,并从中更改所有列的名称。
Names Default To Here( 1 );
dt = Current Data Table();
nameList = dt << get column names( string );
For Each( {col}, nameList,
Column( col ) << set name( "Student's " || col )
);