Stata Numeric Functions

Stata supports these numeric functions in the global scope.


Abs


Ceil


CLogLog


Comb


Dhms

Convert an date value (formatted as %td) plus an hour, minute, and second into the number of milliseconds since the Stata epoch (01jan1960 00:00:00.000`) ignoring leap seconds.

generate double datetime = dhms(dmy(day, month, year), hour, minute, second)
format date %tc

See also Cdhms, which creates returns a number that should instead be formatted as %tC because it does not ignore leap seconds.


DiGamma


Dmy

Convert a day, month, and year into the number of days since the Stata epoch (01jan1960 00:00:00.000).

generate long date = dmy(day, month, year)
format date %td


Exp


ExpM1


Floor


Hms

Convert an hour, minute, and second into the number of milliseconds since midnight ignoring leap seconds.

generate double datetime = hms(hour, minute, second)
format date %tc

See also Chms, which creates returns a number that should instead be formatted as %tC because it does not ignore leap seconds.


Int


InvCLogLog


InvLogit


Ln


Ln1M


Ln1P


LnFactorial


LnGamma


Log


Log10


Log1M


Log1P


Logit


Max


Mdy

Convert a month, day, and year into the number of days since the Stata epoch (01jan1960 00:00:00.000).

generate long date = mdy(month, day, year)
format date %td


Mdyhms

Convert a day, month, year, hour, minute, and second into the number of milliseconds since the Stata epoch (01jan1960 00:00:00.000) ignoring leap seconds.

generate double datetime = mdyhms(month, day, year, hour, minute, second)
format date %tc

See also Cmdyhms, which creates returns a number that should instead be formatted as %tC because it does not ignore leap seconds.


Min


Mod


Real


RBeta


RBinomial


RCauchy


RChi2


RelDif


RExponential


RGamma


RHypergeometric


RIGaussian


RLaplace


RLogistic


RNBinomial


RNormal


Round


RPoisson


RT


RUniform

runiform(a,b) returns a random number between a and b. If no parameters are specified, the defaults of 0 and 1 are used.

Below is a demonstration for how an SRS sample can be drawn.

set seed 123456
generate double r_sampled = runiform()
sort r_sampled
generate byte sampled = _n <= 100 

The return value is a double; it will be within a + c(epsdouble) and b − c(epsdouble).

By default, runiform uses the 64-bit Mersenne Twister algorithm. Alternate algorithms are available; see set rng.

See also set seed for designing deterministic programs.


RUniformInt


RWeibull


RWeibullPH


Sign


SqRt


String

Alias for strofreal.


StrOfReal


Sum


TriGamma


Trunc


Y

Convert a year into the number of years since the Stata epoch (01jan1960 00:00:00.000).

generate int year = y(year)
format year %ty


Yh

Convert a year and half year into the number of half years since the Stata epoch (01jan1960 00:00:00.000).

generate int halfyears = yh(year, halfyear)
format halfyears %th


Ym

Convert a year and month into the number of months since the Stata epoch (01jan1960 00:00:00.000).

generate int months = y(year, month)
format months %tm


Yq

Convert a year and quarter into the number of years since the Stata epoch (01jan1960 00:00:00.000).

generate int quarters = yq(year, quarter)
format quarters %tq


Yw

Convert a year and week into the number of weeks since the Stata epoch (01jan1960 00:00:00.000).

generate int weeks = yw(year, week)
format weeks %tw


CategoryRicottone

Stata/NumericFunctions (last edited 2023-06-15 15:25:53 by DominicRicottone)