2015-09-20 74 views
0

我想計算兩個向量的總和乘積,但其中之一有NA。如何在R中處理crossprod中的缺失值?

crossprod(c(4.5,4,4,3,NA), c(1,5,4,1,1)) 

在計算,我想對待NA作爲一個零。但在原始數據框架中,我仍然希望將其保留爲NA以進行進一步的數據處理。任何暗示將不勝感激。

回答

0

如果你的十字架產品比之更復雜,你可以定義一個新的功能,它取代NA的參數:

crossprod.replacena <- function(x, y, val=0) { 
            crossprod(replace(x, is.na(x), val), 
              replace(y, is.na(y), val) 
           ) 
         } 

或者你可以撥打你的論點replace沒有定義的功能,如replace不修改其參數。

3

可以使用sum功能,並告訴它忽略遺漏值:

sum(c(4.5,4,4,3,NA)*c(1,5,4,1,1), na.rm = TRUE) 
+0

非常感謝!這正是我需要的。 –

+0

@QYang我很困惑。如果這正是你需要的,你爲什麼不接受它? –