【发布时间】:2014-02-15 21:04:30
【问题描述】:
我有一个像这样的大数据集:
my.df <- data.frame(Cond= rep(c("A", "B", "C", "D"), each = 4),
Gene = rep(c("Gene1", "Gene2", "Gene3", "Gene4"), 4),
Avg=sample(85:100, 16, replace = TRUE),
SE=sample(1:5, 16, replace = TRUE),
Val1=sample(1:50, 16),
Val2=sample(1:50, 16))
现在,对于每个基因,我想对所有内容(将“Avg”、“SE”、“Val1”和“Val2”的每个值除以)Cond A 的 Avg 值进行归一化。
我目前的想法是做这样的事情:
by(my.df[ , 3:6], Gene, #since I want to do my calculation on each Gene
lapply(function(x) #since I want to do my calculation on each value
但我不知道如何编写函数,以便它获取x 的当前值并将其除以该基因的 Cond A Avg 值。
另外,我想到制作另一个包含 Gene 和 Cond A Avg 值的数据框:
CondAavg <- my.df[Cond =="A", c("Gene","Avg")]
然后尝试使用 sapply 将函数应用于“基因”的每个值,但我也不太了解如何使其工作。
我显然对 R 还是很陌生,所以任何建议都将不胜感激。
【问题讨论】: