Truncate(object, ...)
"Truncate"(object, lower = -Inf, upper = Inf)
"Truncate"(object, lower= -Inf, upper = Inf)
"Truncate"(object, lower= -Inf, upper = Inf)
"Truncate"(object, lower = -Inf, upper = Inf,  withSimplify = getdistrOption("simplifyD"))lower, 
  upper, withSimplify.simplifyD?signature(object = "AbscontDistribution"): 
returns the distribution of min(upper,max(X,lower))
conditioned to lower<=x<=upper< code="">, 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://article.gmane.org/gmane.comp.lang.r.general/126112. 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";
=x<=upper<>signature(object = "DiscreteDistribution"): 
returns the distribution of min(upper,max(X,lower))
conditioned to lower<=x<=upper< code="">, if X is 
distributed according to object;
the result is again of class "DiscreteDistribution"=x<=upper<>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"signature(object = "UnivarLebDecDistribution"): 
returns the distribution of min(upper,max(X,lower))
conditioned to lower<=x<=upper< code="">, if X is 
distributed according to object;
the result is again of class "UnivarLebDecDistribution"=x<=upper<>Huberize, Minimumplot(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)
Run the code above in your browser using DataLab