printHead.js

import { take } from "ramda"

import print from "./print"

/**
 * Print first n rows of dataframe.
 *
 * @func
 * @memberOf Z
 * @category IO
 * @param {Number} n Number of rows to print
 * @param {df} dataframe
 * @return {String} First `n` rows of dataframe as an ASCII table
 * @see Z.print, Z.printTail
 * @example
 *
 * Z.printHead(3, df)
 *
 * // will output an ASCII table like this:
 * ┌────────────┬───────┬───────┬───────┬───────┬───────────┬─────────┐
 * │ Date       │ Open  │ High  │ Low   │ Close │ Adj Close │ Volume  │
 * ├────────────┼───────┼───────┼───────┼───────┼───────────┼─────────┤
 * │ 1950-01-05 │ 16.93 │ 16.93 │ 16.93 │ 16.93 │ 16.93     │ 2550000 │
 * ├────────────┼───────┼───────┼───────┼───────┼───────────┼─────────┤
 * │ 1950-01-06 │ 16.98 │ 16.98 │ 16.98 │ 16.98 │ 16.98     │ 2010000 │
 * ├────────────┼───────┼───────┼───────┼───────┼───────────┼─────────┤
 * │ 1950-01-09 │ 17.08 │ 17.08 │ 17.08 │ 17.08 │ 17.08     │ 2520000 │
 * └────────────┴───────┴───────┴───────┴───────┴───────────┴─────────┘
 *
 */
const printHead = (n, df) => {
  const truncated = take(n, df)
  return print(truncated)
}

export default printHead