'o.type' tests for the mode, factor status and other classifications of an object.  'x' is the object to be tested.  

ARGUMENTS:

'variables = TRUE' only has an effect if 'x' is a dataframe.  In this case, 'variables = TRUE' causes 'o.type' to list the information about every variable in 'x'. 

'sorted = TRUE' causes the output to printed with the TRUE attributes first; otherwise the attributes are always printed in the same order. 'sorted = TRUE' has no effect if 'x' is a dataframe and 'variables = TRUE'.

Possible Object Types:  

'all.NA' = all elements are NA; 
'array' = is an array;
'char' = character vector or matrix; 
'd.frame' = is a dataframe; 
'factor' = is a factor; 
'fn' = is a function; 
'list' = is a list; 
'logical' = is logical; 
'matrix' = is a matrix; 
'NULL' = is null; 
'numeric' = is numeric; 
'scalar' = is a scalar; 
'zero' = has length zero.

Note that a factor is false for 'is.numeric' even though its mode is numeric (R-oddity).  Moreoever factors and string variables are false for 'is.vector' if they have any attributes other than names (which they typically have).

'on.jm.cmptr' is a boolean function.  It returns TRUE if R is running on one of JM's usual computers, and FALSE otherwise.  on.jm.cmptr() is used to enable special actions that are active when JM is working onone of his usual computers, and are inactive when working on any other computer.

'path.curr' has no effect if R is not running on one of JM's computers.  The only reason for using the 'path.curr' function is that JM works on several different computers with different directory structures.  By using the 'path.curr' function, JM is able to write code that finds corresponding files on the different computers.  If the user is not working on one of JM's computers, then the 'path.curr' function will output the 'filepath' argument without any changes to it.  

Currently (8/21/2013), there are 3 JM computers:  X220, UHouse and JC's ThinkPad.

In the case where R is running on one of JM's computers, 'path.curr' takes a path+filename specification and returns the full path + filename including the drive letter, e.g., "/aa/bb.rda" is returned as "e:/aa/bb.rda" on the X220 computer and as "b:/ab/john/aa/bb.rda" on Dad's computer.  If the 'filepath' argument has the form 'objectName' (no slash) or 'dir/dir/objectName' (no starting slash), then 'path.curr' has no effect (it returns 'filename' unchanged).  In other words, object names or relative paths + object names are unchanged, but an absolute path starting at the root directory is changed to conform to JM's current computer.  

ARGUMENT:

'filepath' = a path + filename specification.   
-------------------------------------------------