如何在R中有效地实现合并

如何在R中有效地实现合并

背景

有几种SQL语言(我主要使用PostgreSQL)有一个名为colesce的函数,它为每一行返回第一个非空列元素。当表有大量的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?


MM们
浏览 453回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP