package water.rapids.vals; import water.fvec.Frame; import water.rapids.Val; /** * Value that represents an H2O dataframe ({@link Frame}). */ public class ValFrame extends Val { private final Frame _fr; public ValFrame(Frame fr) { assert fr != null : "Cannot construct a Frame from null"; _fr = fr; } @Override public int type() { return FRM; } @Override public boolean isFrame() { return true; } @Override public Frame getFrame() { return _fr; } @Override public String toString() { return _fr.toString(); } /** * Extract row from a single-row frame. * @return Array of row elements. */ @Override public double[] getRow() { if (_fr.numRows() != 1) throw new IllegalArgumentException("Trying to get a single row from a multirow frame: " + _fr.numRows() + "!=1"); double res[] = new double[_fr.numCols()]; for (int i = 0; i < _fr.numCols(); ++i) res[i] = _fr.vec(i).at(0); return res; } }