【发布时间】:2013-12-03 00:19:00
【问题描述】:
我有一个以下格式的数据框,正如您所见,每个基因都有多个变量相关联(例如,前两行都与基因 X1 相关联)。
如何选择 X1 的最大可变探头、X2 的最大可变探头和 X3 的最大可变探头?我将使用每行的中值绝对偏差来计算变异性,以衡量变异性。数据框的尺寸非常大(439385 x 32)
P12_neg P29_neg P14_neg P3_neg Gene MAD
cg00008945 0.06834382 0.02129751 0.05877461 0.07455803 X1 n1
cg00011200 0.03415952 0.02044276 0.01593071 0.02513872 X1 n2
cg00018261 0.10386690 0.01565995 0.03092006 0.02627907 X2 n3
cg00026186 0.02339364 0.01111460 0.01287943 0.01242176 X2 n4
cg00026375 0.06322588 0.05420078 0.04394374 0.08865914 X3 n5
cg00043371 0.03288300 0.01759402 0.01939199 0.01499336 X3 n6
编辑。
我计算了中值绝对偏差,是的,使用函数
dataframe$MAD<-apply(dataframe,1,mads)
并找到了解决我的问题的方法。
为了澄清我到底指的是什么,如果第 2 行的 MAD 是最高的 对应于基因 X1 的所有行,如果第 5 行的 MAD 是所有行中最高的 与基因X3相关,并且第4行的MAD是与基因X2相关的最高的,我希望能够拉出第2行(基因X1),第4行(基因X2)和第5行(基因X3)
我下车的解决方案是 [1] 按 MADS 的降序排序,[2] 生成基因名称向量,[3] 使用匹配命令
dataframe<-dataframe[rev(order(dataframe$MAD)),]
genes.vec<-as.character(dataframe$Gene[!duplicated(dataframe$Gene)])
dataframe2<-dataframe[match(genes.vec,dataframe$Gene),]
【问题讨论】:
-
你应该展示你尝试过的东西。例如,我很乐观您能够计算给定行的中值绝对偏差。