*! version 1.1.1 4aug2023

Title

fframeappend -- Append data frames to currently active data frame

Syntax

fframeappend
[varlist]
[if] [in]
, using(framelist)
[force preserve drop generate(newvarname)]

force append string to numeric or numeric to string without error

preserve master frame will be restored if the program fails for any using frame or if the user presses Break

drop drop using frames after appending. Cannot be chosen in combination with preserve.

generate(newvarname) specifies the name of a new variable to be created that indicates the
original frame for each observation

Description

fframeappend appends the variables varlist in the frames framelist to the current frame.
If no varlist is provided all variables in frames framelist will be appended to the current frame.
If a varlist is provided all variables must be present in all frames of framelist.
If option in is provided the range must be feasible in all frames of framelist.
The new observations will be at the bottom of the current frame.
Variables in the currently active frame are automatically promoted following the promotion rules of replace.
With option force, the appended values for incompatible variables (numeric <-> string) are filled with missing values or empty strings,
depending on the type of the incompatible variable in the currently active frame. All variable types (see data_type) are supported.

Remarks and Acknowledgements

fframeappend is another intermediate solution on the way to a (hopefully) future frame append command.
fframeappend is heavily inspired by the existing SSC packages frameappend written by Jeremy Freese and revised with help from Daniel Fernandez, and xframeappend written by Roger Newsom.
The distinguishing feature of fframeappend (apart from being able to append subsets of variables and observations) is its speed:
For relatively large using data frames (>100.000 observation, >1.000 variables) it is about 20 times faster than existing solutions.

Author

Jürgen Wiemers, IAB Nürnberg, juergen.wiemers@iab.de, https://github.com/JuergenWiemers/fframeappend.