calcCore {GCDkit}R Documentation

Calculation of user-defined parameters

Description

Calculates a user-defined parameter specified by the equation.

Usage

calcCore(equation, where = "WR", redo = TRUE)

Arguments

equation

a text string to be evaluated.

where

which matrix should be used?

redo

logical; should be the routine called again and again?

Details

This is a core calculation function.

The expression specified by 'equation' can involve any combination of names of existing numerical columns in the matrix 'where', numbers (i.e. constants), arithmetic operators +-*/^ and R functions.

The most useful of the latter are 'sqrt' (square root), 'log' (natural logarithm), 'log10' (common logarithm), 'exp' (exponential function), 'sin', 'cos' and 'tan' (trigonometric functions).

Potentially useful can be also min (minimum), max (maximum), length (number of elements/cases), 'sum' (sum of the elements), 'mean' (mean of the elements), and 'prod' (product of the elements).

However, any user-defined function can be also invoked here.

For most statistical functions, an useful parameter 'na.rm=T' can be specified. This makes the function to calculate the result from the available data only, ignoring the not determined value (see Examples).

The quotation marks in 'equation' need to preceded by a backslash. Option 'redo' specifies whether the routine should be called repeatedly until some meaningful result is obtained. Otherwise 'NA' is returned.

Value

A list of three items:

equation

equation as entered by the user

results

numeric vector with the results or NA if none can be calculated

formula

the unevaluated expression corresponding to the 'equation'

'

Author(s)

Vojtech Janousek, vojtech.janousek@geology.cz

Examples

calcCore("SiO2/10")

calcCore("Na2O+K2O")

calcCore("log10(Na2O+K2O)")

calcCore("SiO2/MW[\"SiO2\"]") 
# dividing by the built-in molecularWeight, NB the backslashes

calcCore("length(MgO)")
 
calcCore("mean(MgO,na.rm=TRUE)")
# na.rm is a safety measure in case some missing values are present
# otherwise the result would be 'NA'

[Package GCDkit version 4.0 Index]