distributions3 icon indicating copy to clipboard operation
distributions3 copied to clipboard

Some distributions don't have default parameters

Open EmilHvitfeldt opened this issue 5 years ago • 1 comments

library(distributions)
#> 
#> Attaching package: 'distributions'
#> The following objects are masked from 'package:stats':
#> 
#>     Gamma, quantile
#> The following object is masked from 'package:grDevices':
#> 
#>     pdf
distributions::Bernoulli()
#> Bernoulli distribution (p = 0.5)
distributions::Beta()
#> Beta distribution (alpha = 1, beta = 1)
distributions::Binomial()
#> Error in distributions::Binomial(): argument "size" is missing, with no default
distributions::Cauchy()
#> Cauchy distribution (location = 0, scale = 1)
distributions::ChiSquare()
#> Error in distributions::ChiSquare(): argument "df" is missing, with no default
distributions::Exponential()
#> Exponential distribution (rate = 1)
distributions::FisherF()
#> Error in distributions::FisherF(): argument "df1" is missing, with no default
distributions::Gamma()
#> Error in distributions::Gamma(): argument "shape" is missing, with no default
distributions::Geometric()
#> Geometric distribution (p = 0.5)
distributions::HyperGeometric()
#> Error in distributions::HyperGeometric(): argument "m" is missing, with no default
distributions::Logistic()
#> Logistic distribution (location = 0, scale = 1)
distributions::LogNormal()
#> Lognormal distribution (log_mu = 0, log_sigma = 1)
distributions::Multinomial()
#> Error in distributions::Multinomial(): argument "size" is missing, with no default
distributions::NegativeBinomial()
#> Error in distributions::NegativeBinomial(): argument "size" is missing, with no default
distributions::Normal()
#> Normal distribution (mu = 0, sigma = 1)
distributions::Poisson()
#> Error in distributions::Poisson(): argument "lambda" is missing, with no default
distributions::StudentsT()
#> Error in distributions::StudentsT(): argument "df" is missing, with no default
distributions::Tukey()
#> Error in distributions::Tukey(): argument "nmeans" is missing, with no default
distributions::Uniform()
#> Continuous Uniform distribution (a = 0, b = 1)
distributions::Weibull()
#> Error in distributions::Weibull(): argument "shape" is missing, with no default

Created on 2019-06-27 by the reprex package (v0.3.0)

Is this intentional? do we want to provide a sensible default to ensure consistent behavior?

EmilHvitfeldt avatar Jun 27 '19 23:06 EmilHvitfeldt

I think there's two options here - give every distribution a sensible default or allow distributions be initialised without any parameters. This way users (and learners) have to be explicit about the distribution they want when they create it. It's slightly less user-friendly but I think has long term benefits (for learners and code bases).

1danjordan avatar Jun 28 '19 10:06 1danjordan