[英]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.