list_wrap_x generates a wrapper which takes x as its first argument, while list_wrap_df
generates an otherwise identical wrapper function whose first argument is named df.
We provide both because when using the functions as tabulation in
analyze, functions which take df as their first argument are passed the full subset dataframe,
while those which accept anything else notably including x are passed only the relevant subset of the
variable being analyzed.