繁体   English   中英

在R中,如何分别计算每列和每行的平均值?

[英]In R, how to calculate mean per column and row respectively?

我有如下数据。

Env<- c("Env1","Env2")
Genotype1<- c(7,3)
Genotype2<- c(9,5)
dataB<- data.frame(Env, Genotype1,Genotype2)

  Env    Genotype1 Genotype2
1 Env1         7         9
2 Env2         3         5

现在我想像下表一样分别计算每行和每列的平均值

  Env    Genotype1 Genotype2  mean
1 Env1         7         9     8
2 Env2         3         5     4 
  mean         5         7

你能告诉我怎么做吗?

总是非常感谢,

我们可以使用colMeans/rowMeans和 append 将其与rbind/cbind的数据以 R 为base R

out <- cbind(rbind(dataB, c(Env = 'mean', 
  as.list(colMeans(dataB[-1])))), mean = c(rowMeans(dataB[-1]), NA))
out[out$Env == "mean", "mean"] <- mean(unlist(out[out$Env == "mean", 2:3]))

-输出

 > out
   Env Genotype1 Genotype2 mean
1 Env1         7         9    8
2 Env2         3         5    4
3 mean         5         7    6

另一种选择是

 addmargins(`row.names<-`(as.matrix(dataB[-1]), dataB[[1]]), FUN = mean)
     Genotype1 Genotype2 mean
Env1         7         9    8
Env2         3         5    4
mean         5         7    6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM