These functions are typically called by model.matrix rather than directly by a user. hinge, threshold and categorical return a matrix with a column for each feature of the specified type. hinge creates 2*nknots-2 hinge features, half with min=min(x) and half with max=max(x), and knots evenly spaced between min(x) and max(x). A hinge feature h(min,knot) or h(knot,max) is 0 if the predictor is below the first argument, 1 if the predictor is above the second argument, and linearly interpolated inbetween. A threshold feature is 1 if the predictor is above the knot, 0 otherwise. A categorical feature is 1 if the predictor matches the category and 0 otherwise.