read.dta13: Read Stata Binary Files

Description Usage Arguments Details Value Note Author(s) References See Also

View source: R/read.R


read.dta13 reads a Stata dta-file and imports the data into a data.frame.


read.dta13(file, convert.factors = TRUE, generate.factors = FALSE,
  encoding = "UTF-8", fromEncoding = NULL, convert.underscore = FALSE,
  missing.type = FALSE, convert.dates = TRUE, replace.strl = TRUE,
  add.rownames = FALSE, nonint.factors = FALSE, select.rows = NULL)



character. Path to the dta file you want to import.


logical. If TRUE, factors from Stata value labels are created.


logical. If TRUE and convert.factors is TRUE, missing factor labels are created from integers. If duplicated labels are found, unique labels will be generated according the following scheme: "label_(integer code)".


character. Strings can be converted from Windows-1252 or UTF-8 to system encoding. Options are "latin1" or "UTF-8" to specify target encoding explicitly. Stata 14 files are UTF-8 encoded and may contain strings which can't be displayed in the current locale. Set encoding=NULL to stop reencoding.


character. We expect strings to be encoded as "CP1252" for Stata Versions 13 and older. For dta files saved with Stata 14 or newer "UTF-8" is used. In some situation the used encoding can differ for Stata 14 files and must be manually set.


logical. If TRUE, "_" in variable names will be changed to "."


logical. Stata knows 27 different missing types: ., .a, .b, ..., .z. If TRUE, attribute missing will be created.


logical. If TRUE, Stata dates are converted.


logical. If TRUE, replace the reference to a strL string in the data.frame with the actual value. The strl attribute will be removed from the data.frame (see details).


logical. If TRUE, the first column will be used as rownames. Variable will be dropped afterwards.


logical. If TRUE, factors labels will be assigned to variables of type float and double.


integer. Vector of one or two numbers. If single value rows from 1:val are selected. If two values of a range are selected the rows in range will be selected.


If the filename is a url, the file will be downloaded as a temporary file and read afterwards.

Stata files are encoded in ansinew. Depending on your system's default encoding certain characters may appear wrong. Using a correct encoding may fix these.

Variable names stored in the dta-file will be used in the resulting data.frame. Stata types char, byte, and int will become integer; float and double will become numerics. R only knows a single missing type, while Stata knows 27, so all Stata missings will become NA in R. If you need to keep track of Statas original missing types, you may use missing.type=TRUE.

Stata dates are converted to R's Date class the same way foreign handles dates.

Stata 13 introduced a new character type called strL. strLs are able to store strings up to 2 billion characters. While R is able to store strings of this size in a character vector, the printed representation of such vectors looks rather cluttered, so it's possible to save only a reference in the data.frame with option replace.strl=FALSE.

In R, you may use rownames to store characters (see for instance data(swiss)). In Stata, this is not possible and rownames have to be stored as a variable. If you want to use rownames, set add.rownames to TRUE. Then the first variable of the dta-file will hold the rownames of the resulting data.frame.

Reading dta-files of older and newer versions than 13 was introduced with version 0.8.


The function returns a data.frame with attributes. The attributes include


Dataset label


Timestamp of file creation


Stata display formats. May be used with sprintf


Stata data type (see Stata Corp 2014)


For each variable the name of the associated value labels in "label"


Variable labels


dta file format version


List of value labels.


Character vector with long strings for the new strl string variable type. The name of every element is the identifier.


list providing variable name, characteristic name and the contents of Stata characteristic field.


List of numeric vectors with Stata missing type for each variable.


read.dta13 uses GPL 2 licensed code by Thomas Lumley and R-core members from foreign::read.dta().


Jan Marvin Garbuszus [email protected]

Sebastian Jeworutzki [email protected]


Stata Corp (2014): Description of .dta file format

See Also

read.dta in package foreign and memisc for dta files from Stata versions < 13 and read_dta in package haven for Stata version >= 13.

readstata13 documentation built on May 29, 2017, 6:38 p.m.