If one of nrow or ncol is not given, an attempt is
  made to infer it from the length of data and the other
  parameter.  If neither is given, a one-column matrix is returned.
If there are too few elements in data to fill the matrix,
  then the elements in data are recycled.  If data has
  length zero, NA of an appropriate type is used for atomic
  vectors (0 for raw vectors) and NULL for lists.
is.matrix returns TRUE if x is a vector and has a
  "dim" attribute of length 2 and FALSE otherwise.
  Note that a data.frame is not a matrix by this
  test.  The function is generic: you can write methods to handle
  specific classes of objects, see InternalMethods.
as.matrix is a generic function.  The method for data frames
  will return a character matrix if there is only atomic columns and any
  non-(numeric/logical/complex) column, applying as.vector
  to factors and format to other non-character columns.
  Otherwise, the usual coercion hierarchy (logical < integer < double <
  complex) will be used, e.g., all-logical data frames will be coerced
  to a logical matrix, mixed logical-integer will give a integer matrix,
  etc.
The default method for as.matrix calls as.vector(x), and
  hence e.g.coerces factors to character vectors.
When coercing a vector, it produces a one-column matrix, and
  promotes the names (if any) of the vector to the rownames of the matrix.
is.matrix is a primitive function.
The print method for a matrix gives a rectangular layout with
  dimnames or indices.  For a list matrix, the entries of length not
  one are printed in  the form integer,7 indicating the type
  and length.