计算一个数据帧中各个值的均值,合并到第二个数据帧

时间:2017-06-30 18:50:20

标签: r database merge unique tidyr

我有两个生物数据集。数据集1包含按组标记的单个级别测量。

size <- c(1,5,4,2,6) group <- c(1,1,2,2,2)

data1 <- data.frame(size, group)

数据集2包含组级别的平均测量值,即存活的比例

group <- c(1,2) 
p_sx <- c(0.3, 0.76)
data2 <- data.frame(group, p_sx)

问:我如何计算数据集1中每组的平均大小,并根据唯一的组名将其合并到数据集2中?非常感谢!

2 个答案:

答案 0 :(得分:1)

使用mergeaggregate

merge(aggregate(size ~ group, data1, FUN=mean), data2, by="group")

答案 1 :(得分:0)

这就是你要追求的吗?

library(dplyr)
data1 <- data1%>%group_by(group)%>%
                   summarise(mean_size = mean(size))
data2 <- data1%>%left_join(data2,"group")

输出结果为:

> data2
# A tibble: 2 × 3
    group mean_size  p_sx
    <dbl>     <dbl> <dbl>
1     1         3  0.30
2     2         4  0.76