add(df) {
        if (!this.isCommutative(df)) {
            throw new WrongSchemaError(this.df.dim(), df.dim());
        }
        const columns = [...Array(this.df.dim()[1]).keys()];
        return this.df.__newInstance__(
            [
                ...iter(Object.keys([...this.df]), rowKey => {
                    const a = [...this.df][rowKey].toArray();
                    const b = [...df][rowKey].toArray();
                    return columns.map(column => a[column] + b[column]);
                })
            ],
            this.df.listColumns()
        );
    }
Provide an elements pairwise addition of two DataFrames having the same dimensions.
@param {DataFrame} df The second DataFrame to add.
@returns {DataFrame} A new DataFrame resulting to the addition two DataFrames.
@example
df.matrix.add(df2)