rbStata
is a CLI utility to easily convert between (or, roll back) versions of Stata's .dta
, which are not forward compatible.
- Cross-platform CLI utility: Windows, Mac, Linux.
- No knowledge of Python required (but requires a Python installation).
- Handles Unicode to ASCII transliteration (older versions of Stata do not support Unicode).
- Works with Python 3.6+.
- Handles transferring (where available and possible) of:
- Variable labels
- Data labels
- Value labels
Package | |
Testing/build | |
Meta |
Stata .dta
data files are not forward compatible.
This means you cannot use older versions (e.g., Stata 13
) to read a .dta
file exported from newer versions (e.g., Stata 17
).
So what is one to do when you try to open a dta
file in Stata and get a rude dta too modern r(601)
error:
Roll back to older versions of Stata .dta
files with rbStata
.
rbStata
is a quick and dead simple CLI (command-line interface) to go way back with Stata data (.dta
) files. You do not need access to newer Stata
versions.
-
Simple single-line command-line usage:
-
Convert the
auto.dta
file so that you can open it in Stata 13$ rbstata auto.dta --target-version 13 --verbose
-
Convert all
dta
files in the path so that you can open it in Stata 13$ rbstata --all --target-version 13 --verbose
-
-
Let
rbStata
prompt you for relevant settings:Type
rbstata
and enter settings (press enter to accept default settings in brackets):$ rbstata
------------------------------------------------------------- Welcome to the rbStata quickstart command-line utility. You will be prompted for relevant settings. Please enter values under the following settings. (just press Enter to accept the default value in brackets) ------------------------------------------------------------- Enter the dta file(s) you want to convert (e.g. ''auto.dta''). (It is not necessary to key in the .dta extension (e.g., just type ''auto''). Press Enter to include all .dta files in the current directory.) > .dta file(s) [*]: ... The Stata version to convert to. > Target version [13]: ... File suffix for saving the output file(s). (For example, the suffix ''-old'' means that auto.dta will be converted and saved as auto-old.dta. Default is to use ''-rbstata''.) > File suffix for saving [-rbstata]: ... Include all .dta files in current directory and its subdirectories. (Default is to include only the .dta files in the current directory.) > Include subdirectories (y/n) [n]: ... > Print all messages (y/n) [y]: ...
Settings [defaults]
.dta file(s)
[*]: .dta files to convert [all .dta files in current directory]Target version [13]
: version to convert to [Stata v13]File suffix for saving [-rbstata]
: Suffix for saving [E.g. save auto.dta to auto-rbstata.dta]Include subdirectories (y/n) [n]
: Include subdirectories if * [no]Print all messages (y/n) [y]
: Print all messages and errors [yes]
Assortment of enquires about the error
- [1] Stata support FAQs: How can I save a Stata dataset so that it can be read by a previous version of Stata?
- [2] how to read a stata 15 data file in stata 13.
- [3] How to open stata 14 files in Stata 12-13.
- [4] How to open a new stata dataset version.
- [5] How to open a file that is more from a more recent version of Stata into Stata13.
One major jump in forward compatibility is from Stata 13 to Stata 14, where Stata 14 started adding Unicode compatibility. rbStata
handles transferring of the data, value, and variable labels. If Unicode in labels exist and the backward target version is 13, rbStata
will transliterate Unicode to ASCII and truncate labels to 80 characters.
Assortment of enquires about the error
- [1] Stata support FAQs: How can I save a Stata dataset so that it can be read by a previous version of Stata?
- [2] how to read a stata 15 data file in stata 13.
- [3] How to open stata 14 files in Stata 12-13.
- [4] How to open a new stata dataset version.
- [5] How to open a file that is more from a more recent version of Stata into Stata13.
Based on proposed solutions in More about the problem.
- [0] Use Stata's
saveold
(but for this you first need access to the new Stata version. Read in thedta
file. Save it usingsaveold
. Then use the converteddta
file in your older Stata version). - [1] Stat/Transfer (proprietary).
- [2] R's
Haven
.
rbStata
is an open source utility that wraps around click
and pandas
's DataFrame.to_Stata
utility. Using rbStata
, easily convert new Stata dta
files to older versions.
Expose CLI help reference
$ rbstata -h
Usage: rbstata [OPTIONS] <dta files>
Find your way back to older versions of dta files.
Convert newer Stata .dta files to older versions so that you can open them in older
Stata versions.
Options:
-a, --all Convert all dta files in path.
-v, --version <int> Which version of Stata to convert to.
-s, --suffix <text> Suffix to be added to converted file.
-o, --output <text> Name of converted .dta file (Single file conversion only).
Supercedes [suffix].
-r, --recursive Convert all .dta files in directory and subdirectories.
-w, --overwrite Over[w]rite original input .dta files.
-ve, --verbose Print messages.
-h, --help Show this message and exit.