首页 > 解决方案 > 按行名计算列均值

问题描述

我有一个数据框df,其中包含在这些地块上找到的物种的地块名称和值:

df=data.frame(plot=c(1000, 1000, 1000, 1005, 1005, 1005, 1009, 1009, 1009), speciesA=c(5, 0.5, 10, 7, 8, 45, 0.2, 3, 17), speciesB = c(1, 11, 46, 98, 0.2, 14, 40, 37, 22), speciesC = c(0.7, 72, 17, 0, 14, 8, 0, 9, 0.9))

现在我想为每个地块找到每个物种的平均值,从而得到一个数据框,df2如:

df2=data.frame(plot=c(1000,1005,1009), speciesA=c(5.166, 20, 20.2), speciesB=c(19.333, 37.4, 33), speciesC=c(89.7, 7.333, 3.3))

我试过了:

df2 <- df %>% group_by(plot) %>% summarise_each(funs(mean))

这只是使程序完全没有响应。而且我知道我可以使用以下方法折叠行:

df2 <- df[, lapply(.SD, paste0, collapse=""), by=plot]

但这只是将所有数字折叠在一起,我不确定如何使用它来计算平均值。我已经尝试在这里搜索答案,但如果这仍然是一个重复的问题,我深表歉意。

标签: r

解决方案


推荐阅读