2016-03-02 65 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