【问题标题】:Calculating mean of replicate experiment result values in a column based on multiple columns using R使用R计算基于多列的列中重复实验结果值的平均值
【发布时间】:2019-08-15 22:21:59
【问题描述】:

在此门户中发布了多个解决方案,例如 this,通过使用 R 分组来计算基于另一列的列中值的平均值。但是,我无法计算基于列中的重复实验结果值的平均值在使用 R 的多个列上。我需要保留除 Rep 列之外的所有列,并将 value 列替换为基于 Rep 和所有其他列的平均值。

library(dplyr)

Cmpd1  <-  c("abc1","abc1","abc1","abc1","abc1","abc1","abc1","abc1","abc1","abc1","abc1","abc1")
cmpd1_conc  <-  c("0.0412","0.0412","0.1235","0.1235","0.3704","0.3704","1.1111","1.1111","3.3333","3.3333","10","10")
Cmpd2 <-  c("xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1","xyz1")
cmpd2_conc   <- c("1","1","1","1","1","1","1","1","1","1","1","1")
value    <- c(157120,144160,110480,92600,100800,97600,92240,78800,67920,61520,37640,34240)
Plate  <- c("Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1","Plate1")
CL  <- c("CL1","CL1","CL1","CL1","CL1","CL1","CL1","CL1","CL1","CL1","CL1","CL1")
Rep   <-  c(1,2,1,2,1,2,1,2,1,2,1,2)

Result <- data.frame(Cmpd1,cmpd1_conc, Cmpd2, cmpd2_conc, value, Plate, CL, Rep)

MeanResult <- Result %>%
  group_by(Cmpd1, cmpd1_conc, Cmpd2, 
           cmpd2_conc, Plate, CL, Rep) %>% 
  summarize(MeanValue = mean(value))

我尝试了该门户中多个条目中建议的几种方法,但均未果。我想知道我错过了什么。

【问题讨论】:

  • 不清楚你想做什么。你计算的平均值是多少?您的代码显示您包含太多分组变量。最终,每一行都成为自己的组,并且平均值与每一行的原始值相同。
  • 鉴于您对问题的描述,您必须对Rep 的所有列除了进行总结。尝试从group_by 中删除它。另外,不需要as.numeric
  • 这些是重复实验 1 和 2 中的值。我想对获得的值进行平均,需要帮助。
  • 您将每个实验重复两次?
  • 是的。代表 1 和代表 2

标签: r


【解决方案1】:

如果我理解正确,您需要的代码是:

res2 <- aggregate(value~Cmpd1 + cmpd1_conc + Cmpd2 + cmpd2_conc + Plate + CL, FUN = mean, data = Result)

它产生data.frame

 res2
  Cmpd1 cmpd1_conc Cmpd2 cmpd2_conc  Plate  CL  value
1  abc1     0.0412  xyz1          1 Plate1 CL1 150640
2  abc1     0.1235  xyz1          1 Plate1 CL1 101540
3  abc1     0.3704  xyz1          1 Plate1 CL1  99200
4  abc1     1.1111  xyz1          1 Plate1 CL1  85520
5  abc1         10  xyz1          1 Plate1 CL1  35940
6  abc1     3.3333  xyz1          1 Plate1 CL1  64720

【讨论】:

    猜你喜欢
    • 2015-11-02
    • 2019-10-08
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2015-04-11
    相关资源
    最近更新 更多