A + B с NA в r - PullRequest
       3

A + B с NA в r

1 голос
/ 09 марта 2020

Я хочу вычислить A + B в r

A <- c(NA,2,3,4,5)
B <- c(1,2,3,4,NA)

Идеальный результат:

(1,4,6,8,5)

Есть ли способ добиться этого без замены NA на 0? Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 марта 2020

Вы всегда можете реализовать свою собственную сумму:

mysum <- function(...) {
  plus <- function(x, y) {
    ifelse(is.na(x), 0, x) + ifelse(is.na(y), 0, y)
  }
  Reduce(plus, list(...))
}

A <- c(NA,2,3,4,5)
B <- c(1,2,3,4,NA)

mysum(A, B)
#> [1] 1 4 6 8 5
mysum(A, A)
#> [1]  0  4  6  8 10
mysum(A, B, A, B)
#> [1]  2  8 12 16 10

Создано в 2020-03-09 пакетом Представить (v0.3.0)

2 голосов
/ 09 марта 2020

Вы можете сделать это с rowSums:

rowSums(data.frame(A,B), na.rm=TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...