簡體   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