# as.parameters: Converting to parameters-objects In TLMoments: Calculate TL-Moments and Convert Them to Distribution Parameters

## Description

Convert vector, matrix, list, or data.frame to parameters-objects.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```as.parameters(..., distr = NULL) ## S3 method for class 'numeric' as.parameters(..., distr) ## S3 method for class 'matrix' as.parameters(x, distr, ...) ## S3 method for class 'list' as.parameters(x, distr, ...) ## S3 method for class 'data.frame' as.parameters(x, formula, distr, ...) ```

## Arguments

 `...` parameters of distribution. This can be named vectors or lists, matrices, or data.frames. See examples below. `distr` character giving the distribution. Function of name q\"distr\" has to be available. `x` numeric vector, matrix, list, or data.frame of parameters. `formula` if `x` is data.frame a formula has to be given.

## Value

object of class parameters, see parameters help page.

## Methods (by class)

• `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

`parameters`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77``` ```# 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") ## End(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 ## End(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") ## End(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") ## End(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)) ```