You were very close . . .
NamesDefaultToHere(1);
// Data
dt = New Table ("X and Y",
NewColumn("X", Numeric, Continuous, Formula(RandomNormal())),
NewColumn("Y", Numeric, Continuous, Formula(RandomNormal())),
NewColumn("By", Numeric, Nominal, Formula(RandomInteger(1, 3))),
AddRows(100)
);
// Biveriate analysis: biv is a list, one item for each level of the 'By' variable
biv = dt << Bivariate(
Y( :Y ),
X( :X ),
By( :By ),
Fit Special(
xTran( "Reciprocal" ),
{Line Color( "BlueCyan" ), Line Width( 2 )}
)
);
// A reference to the report layer: bivRep is also a list
bivRep = biv << Report;
// 'Make Combined Data Table' avoids having to message to each item in 'bivRep'
dt2 = bivRep [1] [TableBox(3)] << Make Combined Data Table;