Convert vector, matrix, list, or data.frame to parameters-objects.
as.parameters(..., distr = NULL)# S3 method for numeric
as.parameters(..., distr)
# S3 method for matrix
as.parameters(x, distr, ...)
# S3 method for list
as.parameters(x, distr, ...)
# S3 method for data.frame
as.parameters(x, formula, distr, ...)
parameters of distribution. This can be named vectors or lists, matrices, or data.frames. See examples below.
character giving the distribution. Function of name q\"distr\" has to be available.
numeric vector, matrix, list, or data.frame of parameters.
if x
is data.frame a formula has to be given.
object of class parameters, see parameters help page.
numeric
: as.parameters for numeric data vectors
matrix
: as.parameters for numeric data matrices
list
: as.parameters for numeric data lists
data.frame
: as.parameters for numeric data.frames
# NOT RUN {
# Vector input:
as.parameters(loc = 3, scale = 2, shape = .4, distr = "gev")
as.parameters(c(loc = 3, scale = 2, shape = .4), distr = "gev")
# Names can be shortened if unambiguous:
as.parameters(l = 3, sc = 2, sh = .4, distr = "gev")
as.parameters(m = 3, s = 1, distr = "norm")
# Wrong or ambiguous names lead to errors!
# }
# NOT RUN {
as.parameters(l = 3, s = 2, s = .4, distr = "gev")
as.parameters(loc2 = 3, scale = 2, shape = .4, distr = "gev")
# }
# NOT RUN {
# If no names are given, a warning is given and they are guessed for gev, gpd, gum, and ln3.
as.parameters(3, 2, .4, distr = "gev")
as.parameters(c(3, 2, .4), distr = "gev")
# }
# NOT RUN {
as.parameters(3, 2, .2, .4, distr = "gev") #=> doesn't work
# }
# NOT RUN {
# Matrix input:
# Parameters in matrices must have either matching rownames or colnames!
as.parameters(cbind(loc = 10, scale = 4, shape = seq(0, .4, .1)), distr = "gev")
as.parameters(rbind(loc = 10, scale = 4, shape = seq(0, .4, .1)), distr = "ln3")
# If no names are given, a guess is made based on number of rows
# or cols according to distribution (and a warning is given).
as.parameters(matrix(1:9, nr = 3), distr = "gev")
as.parameters(matrix(1:8, nc = 2), distr = "gum")
# The same principles apply for list input and data.frames:
# List input:
as.parameters(list(list(mean = 2, sd = 1), list(mean = 0, sd = 1)), distr = "norm")
as.parameters(list(c(m = 2, s = 1), c(m = 0, s = 1)), distr = "norm")
as.parameters(list(c(loc = 2, scale = 1), c(0, 1)), distr = "gum")
# }
# NOT RUN {
as.parameters(list(c(loc = 2, scale = 1), c(0, 1, 2)), distr = "gum")
# }
# NOT RUN {
# Dataframe input:
xdat <- data.frame(station = c(1, 2), mean = c(2, 0), sd = c(1, 1))
as.parameters(xdat, cbind(mean, sd) ~ station, distr = "norm")
as.parameters(xdat, . ~ station, distr = "norm")
as.parameters(xdat, cbind(mean, sd) ~ ., distr = "norm")
xdat <- data.frame(station = c(1, 2), m = c(2, 0), s = c(1, 1))
as.parameters(xdat, cbind(m, s) ~ station, distr = "norm")
# }
# NOT RUN {
as.parameters(xdat, cbind(m, s) ~ station, distr = "gev")
# }
# NOT RUN {
###
# Results of as.parameters can be used in the normal TLMoments-scheme:
# they can be transfered to quantiles or to TLMoments.
xdat <- data.frame(station = c(1, 2), mean = c(2, 0), sd = c(1, 1))
quantiles(as.parameters(xdat, cbind(mean, sd) ~ ., distr = "norm"), c(.99))
# quantile estimation
p <- as.parameters(loc = 3, scale = 2, shape = .4, distr = "gev")
quantiles(p, c(.9, .95))
p <- as.parameters(cbind(loc = 10, scale = 4, shape = seq(0, .4, .1)), distr = "gev")
quantiles(p, c(.9, .95))
p <- as.parameters(list(list(mean = 2, sd = 1), list(mean = 0, sd = 1)), distr = "norm")
quantiles(p, c(.95, .975))
# With magrittr
library(magrittr)
as.parameters(loc = 3, scale = 2, shape = .4, distr = "gev") %>% quantiles(c(.9, .99))
# }
Run the code above in your browser using DataLab