[英]How to check if multiple columns are row-wise equivalent, ignoring NA values
[英]Summing lots of Vectors; row-wise or elementwise, but ignoring NA values
我正在嘗試創建一個新的向量,它是35個其他向量的總和。 問題是有很多NA值,但對於這種特殊用途,我想將它們視為零。 添加向量將不起作用,因為如果35個向量中的任何一個包含NA,則結果為NA。 以下是問題的示例:
col1<-c(NA,1,2,3)
col2<-c(1,2,3,NA)
col3<-c(NA,NA,2,3)
Sum<-col1+col2+col3
Sum
# [1] NA NA 7 NA
我希望結果是1,3,7,6。
我想我可以創建每個向量的新版本,其中我用0替換NA,但是當應用於35個向量時,這將是很多工作。 有一個簡單的功能可以幫助我嗎?
也可以使用rowSums
函數:
rowSums( cbind (col1,col2,col3), na.rm=TRUE)
#[1] 1 3 7 6
?rowSums # also has colSums described on same help page
首先將它們放在矩陣中:
apply(cbind(col1,col2,col3),1,sum,na.rm = TRUE)
[1] 1 3 7 6
您可以使用R的內置文檔閱讀有關每個函數的內容: ?apply
, ?cbind
。
cbind
代表“列綁定”:它需要幾個向量或數組,並將它們“按列”綁定到一個數組中:
cbind(col1,col2,col3)
col1 col2 col3
[1,] NA 1 NA
[2,] 1 2 NA
[3,] 2 3 2
[4,] 3 NA 3
apply
,嗯, 將函數(在這種情況下為sum
)應用於矩陣的行或列。 這允許我們使用na.rm = TRUE
參數sum
以便刪除NA值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.