0
sampleName     realConc      exptname concentrate timepoints replicate    day  var
  name1    3.877049e-05           0hr        55mM          0        b1 011311   1
  name1    3.293085e-04           0hr        55mM          0        b1 011311   2
  name2    2.939995e-03 KClpulse-5min        55mM         20        b1 011411   1
  name2    1.212584e-02 KClpulse-5min        55mM         20        b1 011411   2

这是一个名为“ex”的示例数据框

我想平均列中具有重复值的行的 realConc 值:exptname、concentrate、timepoints、replicate 和 day。

然后用这个新的平均值和相同的 sampleName 做一行

我一直在想mean(ex[which(duplicated(paste(ex$exptname,ex$concentrate,ex$timepoints,ex$replicate,ex$day))),]$realConc)

这样做的问题是,它将平均这些列中重复的每个值,即使它们彼此不同

我需要为每列中的每个唯一值发生这种情况

然后我需要一行具有平均 realConc 值和相同的 sampleName 与任何行的平均

4

1 回答 1

2

我认为,如果我对您的理解正确,您应该能够使用aggregate().

假设你data.frame的名字是ex

aggregate(realConc ~ ., mean, data = ex)
  sampleName      exptname concentrate timepoints replicate   day     realConc
1      name1           0hr        55mM          0        b1 11311 0.0001840395
2      name2 KClpulse-5min        55mM         20        b1 11411 0.0075329175
于 2012-08-18T05:26:53.117 回答