Как эффективно объединить в R
Фон
Некоторые языки SQL (я в основном использую postgreSQL) имеют функцию coalesce, которая возвращает первый элемент столбца, не равный NULL, для каждой строки. Это может быть очень эффективно использовать, когда в таблицах многоNULL
элементы в них.
Я сталкиваюсь с этим во многих сценариях в R, а также при работе с не очень структурированными данными, в которых много NA.
Я сделал наивную реализацию сам, но это смехотворно медленно.
coalesce <- function(...) {
apply(cbind(...), 1, function(x) {
x[which(!is.na(x))[1]]
})
}
примерa <- c(1, 2, NA, 4, NA)
b <- c(NA, NA, NA, 5, 6)
c <- c(7, 8, NA, 9, 10)
coalesce(a,b,c)
# [1] 1 2 NA 4 6
ВопросЕсть ли эффективный способ реализацииcoalesce
в R?