Creates a rose object out of circular data

Share:

Description

rose splits data into subsets according to one or two grouping elements, computes summary statistics for each, and returns the result in a rose object.

Usage

1
2
3
4
5
rose(x, subset = NULL,
     cyclVar = NULL, circle = NULL, n.cyclVar = 8,
     cut = NULL, labels = NULL,
     breaks = NULL, include.lowest = FALSE, right = TRUE, dig.lab = 2,
     warn = TRUE, FUN = mean, ...)

Arguments

x

Vector, data frame or matrix containing the response.

subset

An optional vector specifying a subset of observations to be used in the aggregating process.

cyclVar

Cyclic variable as first grouping element. cyclVar must be a numeric vector whose length is equal to the number of rows in x with 0 <= cyclVar < circle. Observations where cyclic variables are NA are automatically excluded from the rose object.

circle

Defines the value of a full circle with no default.

n.cyclVar

Defines the number of equally spaced intervals of the cyclic variable, into which the data are split. The first interval is labeled with 0 and is always centered around 0.

cut

Vector of numerics, logicals or factors as second grouping elements. Its length is equal to the number of rows in x. cut is used to group the observations similar to function cut.

labels

Labels for the corresponding intervals. When cut is a logical, labels has to be named in the order: FALSE, TRUE.

breaks, include.lowest, right, dig.lab

These arguments are only active when cut is numeric and are used in exactly the same way as in cut.
breaks defines the break points.
include.lowest = TRUE indicates that the lowest (or highest, for right = FALSE) breaks value should be also included.
right = TRUE indicates that the intervals should be closed on the right (and open on the left) or vice versa for right = FALSE.
dig.lab number of digits for breaks labeling when labels are not given explicitely.

warn

Logical, indicating if warnings should be issued for NAs in cyclVar and / or x-values outside of breaks range.

FUN

Summary function, returning a scalar or vector.

...

Additional arguments for summary function.

Details

The first grouping element, cyclVar, for the summary statistics must be circular and numeric. The second grouping element, cut, can be numeric, logical or a factor.
Not all combinations of arguments are allowed:
Argument cut can only be defined when summary consists of a scalar and x consists of 1 column.
When x contains only one column and cut is not defined, the summary function may also be a vector with the restriction, that the summary of each subset, defined by the cyclic variable, must have the same number of elements.
When x is a data frame or matrix with more than 1 column, the summary function must be scalar.

Value

Object of class rose

Author(s)

Rene Locher

See Also

rose-class, plot.rose, cart2clock, clock2cart

Examples

 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
## artificial example:
## concentration of A and B as function of
## hour of day (hour) and wind direction (WD)
hour <- rep(0:23,100)
dat <- data.frame(hour = hour,
                  A =    (2*cos((hour+6)/6*pi)+rnorm(24*100,1))^2,
                  B =    (2*cos((hour+4)/6*pi)+rnorm(24*100,1,2))^2,
                  WD =   rnorm(24*100,
                           mean=sample(c(190,220,50),24*100, replace = TRUE),
                           sd=30)%%360)

## two different responses, scalar summary function
mean.windrose <- rose(dat[,c("A","B")],
                      cyclVar=dat$WD,
                      circle=360,
                      FUN=mean, na.rm=TRUE)
mean.windrose

## one response, vectorial summary function
quant.dayrose <- rose(dat$A,
                      cyclVar=dat$hour,
                      n.cyclVar=24, circle=24,
                      FUN=quantile, na.rm=TRUE)
quant.dayrose


mean.windroseB <- rose(dat[,c("A")],
                       cyclVar=dat$WD,
                       circle=360,
                       cut=dat$B,
                       breaks=c(0,30,100),
                       dig.lab=3,
                       FUN=mean, na.rm=TRUE)
mean.windroseB

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.