# Truncate-methods

##### Methods for function Truncate in Package `distr'

Truncate-methods

- Keywords
- methods, distribution

##### Usage

```
Truncate(object, ...)
# S4 method for AbscontDistribution
Truncate(object, lower = -Inf, upper = Inf)
# S4 method for DiscreteDistribution
Truncate(object, lower= -Inf, upper = Inf)
# S4 method for LatticeDistribution
Truncate(object, lower= -Inf, upper = Inf)
# S4 method for UnivarLebDecDistribution
Truncate(object, lower = -Inf, upper = Inf,
withSimplify = getdistrOption("simplifyD"))
```

##### Arguments

- object
distribution object

- …
not yet used; takes up

`lower`

,`upper`

,`withSimplify`

.- lower
numeric; lower truncation point

- upper
numeric; upper truncation point

- withSimplify
logical; is result to be piped through a call to

`simplifyD`

?

##### Value

the corresponding distribution of the truncated random variable

##### Methods

- Truncate
`signature(object = "AbscontDistribution")`

: returns the distribution of`min(upper,max(X,lower))`

conditioned to`lower<=X<=upper`

, if`X`

is distributed according to`object`

; if slot`.logExact`

of argument`object`

is`TRUE`

and if either there is only one-sided truncation or both truncation points lie on the same side of the median, we use this representation to enhance the range of applicability, in particular, for slot`r`

, we profit from Peter Dalgaard's clever log-tricks as indicated in http://r.789695.n4.nabble.com/help-on-sampling-from-the-truncated-normal-gamma-distribution-on-the-far-end-probability-is-very-low-td868119.html#a868120. To this end we use the internal functions (i.e.; non exported to namespace)`.trunc.up`

and`.trunc.low`

which provide functional slots`r,d,p,q`

for one-sided truncation. In case of two sided truncation, we simply use one-sided truncation successively --- first left and then right in case we are right of the median, and the other way round else; the result is again of class`"AbscontDistribution"`

;- Truncate
`signature(object = "DiscreteDistribution")`

: returns the distribution of`min(upper,max(X,lower))`

conditioned to`lower<=X<=upper`

, if`X`

is distributed according to`object`

; the result is again of class`"DiscreteDistribution"`

- Truncate
`signature(object = "LatticeDistribution")`

: if length of the corresp.`lattice`

is infinite and slot`.logExact`

of argument`object`

is`TRUE`

, we proceed similarly as in case of`AbscontDistribution`

, also using internal functions`.trunc.up`

and`.trunc.low`

; else we use the corresponding`"DiscreteDistribution"`

method; the result is again of class`"LatticeDistribution"`

- Truncate
`signature(object = "UnivarLebDecDistribution")`

: returns the distribution of`min(upper,max(X,lower))`

conditioned to`lower<=X<=upper`

, if`X`

is distributed according to`object`

; the result is again of class`"UnivarLebDecDistribution"`

##### See Also

##### Examples

```
# NOT RUN {
plot(Truncate(Norm(),lower=-1,upper=2))
TN <- Truncate(Norm(),lower=15,upper=15.7) ### remarkably right!
plot(TN)
r(TN)(30)
TNG <- Truncate(Geom(prob=0.05),lower=325,upper=329) ### remarkably right!
plot(TNG)
# }
```

*Documentation reproduced from package distr, version 2.7.0, License: LGPL-3*