# grapes-plus-na-grapes: %+na% In ie2misc: Irucka Embry's Miscellaneous USGS Functions

## Description

This function "defines a dyadic operator that will behave differently than the "+" operator with regards to missing values". (Quote by 42- in Source 1 below). In this case, add `x` and `y` so that `NA` is ignored when `x` is a number and `x = NA` when `x = 0`.

## Usage

 `1` ```x %+na% y ```

## Arguments

 `x` numeric vector that does not contain any `NA` values `y` numeric vector which contains at least one `NA` value

## Value

numeric vector resulting from the `sum` of `x` and `y`

## Source

1. Using ':=' in data.table to sum the values of two columns in R, ignoring NAs - Stack Overflow answered by 42- on Oct 28 2012. See https://stackoverflow.com/questions/13106645/using-in-data-table-to-sum-the-values-of-two-columns-in-r-ignoring-nas.

2. R - merge unequal regular (15 min intervals) and irregular time series within 10 minutes - Stack Overflow asked by iembry on Jan 12 2015 and edited by iembry on Feb 2 2015. See https://stackoverflow.com/questions/27930548/r-data-table-dyadic-operator-and-summing-duplicate-rows-based-on-time-se.

## 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``` ```library("ie2misc") a <- 1:10 b <- c(98:106, NA) a %+na% b # Note that if the vector with the NA value(s) is first, then the additive # result will still be an NA value(s) b %+na% a a1 <- 1:12 b1 <- c(98:106, rep(NA, 3)) a1 %+na% b1 # using a matrix of the numeric vectors a and b mat1 <- matrix(data = c(a, b), nrow = length(b), ncol = 2, byrow = FALSE, dimnames = list(c(rep("", length(b))), c("a", "b"))) mat1[, 1] %+na% mat1[, 2] # using a data.frame of the numeric vectors a and b df1 <- data.frame(a, b) df1[, 1] %+na% df1[, 2] library("data.table") # using a data.table of the numeric vectors a and b df2 <- data.table(a, b) df2[, 1, with = FALSE][] %+na% df2[, 2, with = FALSE][] ```

ie2misc documentation built on July 2, 2020, 4 a.m.