Seems like this should be simple, but I cannot find a clear example. I would like to concatinate the values in columns of a specific name("ROW" and "COL") and create a new column with the result in it. Example below.
ROW COL CELL
5 1 5_1
3 2 3_2
12 -1 12_-1
best shot at code so far:
column("ROW") << Data type(Character);
column("COL") << Data type(Character);
//a = {column("ROW"), column("COL")};
ConExpr = concat items({column("ROW"), column("COL")} , "_");
//Add "CELL" column = concat col(ROW) "_" col(COL)
dt << new column("CELL",Character, "Nominal", Format("Best", 12), formula(eval(Expr(ConExpr))));my results:
CELL
_
_
Any help in understanding why my code evaluates to that and the correct implementation would be greatly appreciated.
I concatenated it the following way. Is this your Goal? Does it help?
There are several issues in your script,
e.g. you need to put expressions in an "expr()" etc., please see scripting index for further documentation,
and try out.
BR
Names Default To Here( 1 );
dt = New Table( "Concatenate",
Add Rows( 3 ),
New Column( "ROW", Character, "Nominal", Set Values( {"5", "3", "12"} ) ),
New Column( "COL", Character, "Nominal", Set Values( {"1", "2", "-1"} ) )
);
// ConExpr = expr(Concat Items( {Column( "ROW" )[Row()], Column( "COL" )[Row()]}, "_" ));
ConExpr = expr(Concat Items( {:ROW, :COL}, "_" ); );
//Add "CELL" column = concat col(ROW) "_" col(COL)
dt << New Column( "CELL", Character, "Nominal", formula( Name Expr( ConExpr ) ) );
The New Column syntax can be simplified.
Names Default To Here( 1 );
dt = New Table( "Concatenate",
Add Rows( 3 ),
New Column( "ROW", Character, "Nominal", Set Values( {"5", "3", "12"} ) ),
New Column( "COL", Character, "Nominal", Set Values( {"1", "2", "-1"} ) )
);
// Creae new column
dt << New Column( "CELL1", Character,formula(:ROW || "_" || :COL) );
//or
dt << New Column( "CELL2", Character,formula( Concat( :ROW, "_", :COL) ) );
Jim's solution is the easiest - no need to overcomplicate things with expr, eval etc.
sure, simply wanted to stay near to the given example. Eventually there is a more complex environment, that for expr was needed.