循环减去不同数据帧的列以标准化数据

Loop to subtract columns of different data frames to normalize data

我需要从其他四个数据帧中减去时间零吸光度列以标准化数据。理想情况下,这将通过一个循环来完成,该循环遍历每个数据帧并从原始时间零吸光度中减去每个吸光度列,从而创建 4 个新的标准化数据帧。我有很多数据,所以循环是唯一可行的选择。给你一个想法数据框看起来像:

井号、吸光度值

将相应测量的数据保存在不同 data.frames 范围内总体上是个坏主意。您真的应该考虑将所有这些测量值放在一个 data.frame 中,然后您的任务将变得几乎微不足道。请考虑 cbinding 或 mergeing 你的 data.frames.

好了,回到最初的问题。最理想的情况是,您希望在 list 中循环所有 data.frames,如

expl <- list(
  one.hour = data.frame(id = 1:10, absorbance = runif(10)),
  two.hours = data.frame(id = 1:10, absorbance = runif(10)),
  three.hours = data.frame(id = 1:10, absorbance = runif(10))
)

zero.absorbance <- data.frame(id = 1:10, absorbance = runif(10))

然后您可以遍历该列表的元素,例如,使用 for 循环

for (i in 1:length(expl)){
  expl[[i]]$corrected.absorbance <- expl[[i]]$absorbance - zero.absorbance$absorbance
}

结果达到顶峰:

head(expl[[1]])  # first example data.frame
head(expl[[2]])  # second example data.frame
head(expl[[3]])  # third...