根据多个变量查找值的平均值

时间:2016-07-21 18:06:28

标签: r mean

Plot of Reads vs Gelscores对于gelscore的每个排列,意味着#Reads?

我在大学的遗传学实验室工作,目前正在我们的计算机实验室进行数据分析。运行PCR后,我们根据Band,Smear,Primer Dimer和Non Specific Product对我们的凝胶进行评分。这些变量只有0,1或2的指定值。我试图找到4个凝胶评分的每个组合返回的平均读数(测序结果)。每个变量在数据表中都有自己的列。

数据表: Vial ID,Band,Smear,Primer.Dimer,Non.Spec,Reads

实施例。凝胶的平均读数,其中Band = 0,Smear = 0,PrimerDimer = 0 NonSpec = 0.

实施例。凝胶的平均读数,其中Band = 0,Smear = 1,PrimerDimer = 1 NonSpec = 2.

我们将非常感谢任何建议, 谢谢

我可以使用通用绘图功能绘制这些数据。虽然显示了平均条形,但我无法确定它们的值。

"图(读取〜as.factor(数据表$带+(Primer.Dimer * 10)+(涂抹* 100)+(Non.Specific.Product * 1000))"

1 个答案:

答案 0 :(得分:0)

您可以使用dplyr和tidyr软件包执行此操作:

    library(dplyr)
    library(tidyr)

    set.seed(14592)

    df <- data.frame(
      vial_id      = 1:10, 
      band         = sample(0:2, 10, replace = TRUE), 
      smear        = sample(0:2, 10, replace = TRUE), 
      primer_dimer = sample(0:2, 10, replace = TRUE), 
      non_spec     = sample(0:2, 10, replace = TRUE), 
      reads        = rnorm(10)
    )

   df %>% 
      unite(group_id, band:non_spec, remove = FALSE) %>% 
      group_by(group_id) %>% 
      summarize(group_mean = mean(reads))

这使用tidyr的unite函数为每个凝胶分数组合创建一个唯一的组ID,然后使用dplyr的group_bysummarize函数来查找每个组的平均读数。