toMarkdown method
A conversion of this data frame to a markdown table.
Implementation
String toMarkdown({
Map<String, MarkdownAlignment> alignment = const {},
Iterable<String>? columns,
Map<String, int> fixed = const {},
}) {
columns = columns ?? [...numericColumns.keys, ...categoricColumns.keys];
if (columns.any((column) =>
!numericColumns.containsKey(column) &&
!categoricColumns.containsKey(column))) {
throw PackhorseError.badArgument("Bad column name in $columns.");
}
final table = toListOfMaps(),
row = (Iterable<String> cells) => "|${cells.join("|")}|",
sb = StringBuffer("\n")
..writeln("|${columns.join("|")}|")
..writeln(row(columns.map((key) => alignment.containsKey(key)
? alignment[key]!.mark
: MarkdownAlignment.left.mark)));
for (final r in table) {
sb.writeln(row(columns.map((key) => r[key]!
.replaceAll('"', "")
.replaceAll("<", "<")
.replaceAll(">", ">"))));
}
return sb.toString();
}