Stata Numeric Functions
Stata supports these numeric functions in the global scope.
Contents
-
Stata Numeric Functions
- Abs
- Ceil
- CLogLog
- Comb
- Dhms
- DiGamma
- Dmy
- Exp
- ExpM1
- Floor
- Hms
- Int
- InvCLogLog
- InvLogit
- Ln
- Ln1M
- Ln1P
- LnFactorial
- LnGamma
- Log
- Log10
- Log1M
- Log1P
- Logit
- Max
- Mdy
- Mdyhms
- Min
- Mod
- Real
- RBeta
- RBinomial
- RCauchy
- RChi2
- RelDif
- RExponential
- RGamma
- RHypergeometric
- RIGaussian
- RLaplace
- RLogistic
- RNBinomial
- RNormal
- Round
- RPoisson
- RT
- RUniform
- RUniformInt
- RWeibull
- RWeibullPH
- Sign
- SqRt
- String
- StrOfReal
- Sum
- TriGamma
- Trunc
- Y
- Yh
- Ym
- Yq
- Yw
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