2016-03-02 64 views
0

在R studio中,如何獲得具有條件邏輯的多列中的一列的平均值?例如,我有一個數據集,名爲下面5列的「測試」。我想獲得一個組合平均列A,B,和C.但我只想包括列C中的平均如果標誌等於1的用於列的單元格C.R Studio:具有條件邏輯的平均多列

ID<-c(1,2,3) 
    A<-c(1,0,NA) 
    B<-c(0,NA,1) 
    C<-c(1,1,1) 
    Flag<-c(0,1,1) 
    test<-as.data.frame(cbind(ID,A,B,C,Flag)) 

[click here to see my data set]

所以我想:平均=(在列A +所有在列B + C欄只有細胞的細胞的所有細胞,其中細胞在標誌列等於1)

回答

1

我們unlist數據集與列的子集( 「A」,「B」),與對應於「Flag」1的「C」的值連接並得到mean

mean(c(unlist(test[c("A", "B")]), test$C[test$Flag==1]), na.rm=TRUE) 
#[1] 0.6666667 
+0

但這返回多個平均值爲行,其中標誌等於1。我想獲得該矩陣的一個總平均(列A,B,C)排除細胞C,其中標誌爲等於零。 – Mary

+0

@Smith更新了帖子。檢查這是否是預期的輸出。 – akrun