Learn R Programming

Hmisc (version 5.2-1)

contents: Metadata for a Data Frame

Description

contents is a generic method for which contents.data.frame is currently the only method. contents.data.frame creates an object containing the following attributes of the variables from a data frame: names, labels (if any), units (if any), number of factor levels (if any), factor levels, class, storage mode, and number of NAs. print.contents.data.frame will print the results, with options for sorting the variables. html.contents.data.frame creates HTML code for displaying the results. This code has hyperlinks so that if the user clicks on the number of levels the browser jumps to the correct part of a table of factor levels for all the factor variables. If long labels are present ("longlabel" attributes on variables), these are printed at the bottom and the html method links to them through the regular labels. Variables having the same levels in the same order have the levels factored out for brevity.

contents.list prints a directory of datasets when sasxport.get imported more than one SAS dataset.

If options(prType='html') is in effect, calling print on an object that is the contents of a data frame will result in rendering the HTML version. If run from the console a browser window will open.

Usage

contents(object, ...)
# S3 method for data.frame
contents(object, sortlevels=FALSE, id=NULL,
  range=NULL, values=NULL, ...)
# S3 method for contents.data.frame
print(x,
    sort=c('none','names','labels','NAs'), prlevels=TRUE, maxlevels=Inf,
    number=FALSE, ...) 
# S3 method for contents.data.frame
html(object,
           sort=c('none','names','labels','NAs'), prlevels=TRUE, maxlevels=Inf,
           levelType=c('list','table'),
           number=FALSE, nshow=TRUE, ...)
# S3 method for list
contents(object, dslabels, ...)
# S3 method for contents.list
print(x,
    sort=c('none','names','labels','NAs','vars'), ...)

Value

an object of class "contents.data.frame" or

"contents.list". For the html method is an html

character vector object.

Arguments

object

a data frame. For html is an object created by contents. For contents.list is a list of data frames.

sortlevels

set to TRUE to sort levels of all factor variables into alphabetic order. This is especially useful when two variables use the same levels but in different orders. They will still be recognized by the html method as having identical levels if sorted.

id

an optional subject ID variable name that if present in object will cause the number of unique IDs to be printed in the contents header

range

an optional variable name that if present in object will cause its range to be printed in the contents header

values

an optional variable name that if present in object will cause its unique values to be printed in the contents header

x

an object created by contents

sort

Default is to print the variables in their original order in the data frame. Specify one of "names", "labels", or "NAs" to sort the variables by, respectively, alphabetically by names, alphabetically by labels, or by increaseing order of number of missing values. For contents.list, sort may also be the value "vars" to cause sorting by the number of variables in the dataset.

prlevels

set to FALSE to not print all levels of factor variables

maxlevels

maximum number of levels to print for a factor variable

number

set to TRUE to have the print and latex methods number the variables by their order in the data frame

nshow

set to FALSE to suppress outputting number of observations and number of NAs; useful when these counts would unblind information to blinded reviewers

levelType

By default, bullet lists of category levels are constructed in html. Set levelType='table' to put levels in html table format.

...

arguments passed from html to format.df, unused otherwise

dslabels

named vector of SAS dataset labels, created for example by sasdsLabels

Author

Frank Harrell
Vanderbilt University
fh@fharrell.com

See Also

describe, html, upData, extractlabs, hlab

Examples

Run this code
set.seed(1)
dfr <- data.frame(x=rnorm(400),y=sample(c('male','female'),400,TRUE),
                  stringsAsFactors=TRUE)
contents(dfr)
dfr <- upData(dfr, labels=c(x='Label for x', y='Label for y'))
attr(dfr$x, 'longlabel') <-
 'A very long label for x that can continue onto multiple long lines of text'

k <- contents(dfr)
print(k, sort='names', prlevels=FALSE)
if (FALSE) {
html(k)
html(contents(dfr))            # same result
latex(k$contents)              # latex.default just the main information
}

Run the code above in your browser using DataLab