根据统计学知识,一般不可能。但是根据文献报道,运用RobustRankAggreg算法,可以实现。
本人看不懂,也模拟不出结果,现贴出官方帮助文件:
Aggregate ranked lists...DescriptionAggregate ranked lists
UsageaggregateRanks(glist, rmat=rankMatrix(glist, N, full = full), N=NA, method="RRA", full=FALSE, topCutoff=NA)Arguments
glist | list of element vectors, the order of the vectors is used as the ranking. |
rmat | the rankings in matrix format. The glist is by default converted to this format. |
N | the number of ranked elements, important when using only top-k ranks, by default it is calculated as the number of unique elements in the input. |
method | rank aggregation method, by defaylt 'RRA', other options are 'min', 'geom.mean', 'mean', 'median' and 'stuart' |
full | indicates if the full rankings are given, used if the the sets of ranked elements do not match perfectly |
topCutoff | a vector of cutoff values used to limit the number of elements in the input lists elements do not match perfectly |
The rankings can be either full or partial. Tests with the RRA algorithm show that one does not lose too much information if only top-k rankings are used. The missing values are assumed to be equal to maximal value and that way taken into account appropriately.
The function can handle also the case when elements of the different rankings do not overlap perfectly. For example if we combine resutls from different microarray platforms with varying coverage. In this case these structurally missing values are substituted with NA-s and handled differently than omitted parts of the rankings. The function accepts as an input either list of rankings or rank matrix based on them. It converts the list to rank matrix automatically using the function rankMatrix. For most cases the ranking list is more convenient. Only in complicated cases, for example with top-k lists and structural missing values one would like to construct the rank matrix manually.
When the number of top elements included into input is specified in advance, for example some lists are limited to 100 elements, and the lengths of these lists differ significantly, we can use more sensitive and accurate algorithm for the score calculation. Then one has to specify in the input also the parameter topCutoff, which is a vector defining an cutoff value for each input list. For example if we have three lists of 1000 elements but first is limited to 100, second 200 and third to 900 elements, then the topCutoff parameter should be c(0.1, 0.2, 0.9).
ValueReturns a two column dataframe with the element names and associated scores or p-values.
Author(s)Raivo Kolde <rkolde@gmail.com>
ReferencesKolde et al "Robust Rank Aggregation for gene list integration and meta-analysis" (in preparation)
Examples# Make sample input dataglist <- list(sample(letters, 4), sample(letters, 10), sample(letters, 12))# Aggregate the inputsaggregateRanks(glist = glist, N = length(letters))aggregateRanks(glist = glist, N = length(letters), method = "stuart")# Since we know the cutoffs for the lists in advance (4, 10, 12) we can use# the more accurate algorithm with parameter topCutoff# Use the rank matrix instead of the gene lists as the inputr = rankMatrix(glist)aggregateRanks(rmat = r)# Example, when the input lists represent full rankings but the domains do not match glist <- list(sample(letters[4:24]), sample(letters[2:22]), sample(letters[1:20]))r = rankMatrix(glist, full = TRUE) head(r)aggregateRanks(rmat = r, method = "RRA")# Dataset representing significantly changed genes after knockouts # of cell cycle specific trancription factorsdata(cellCycleKO)r = rankMatrix(cellCycleKO$gl, N = cellCycleKO$N)ar = aggregateRanks(rmat = r)head(ar)
希望有好心人帮忙,我模拟到,帮助文件中例子“N=?”,就出现“下标出界”先谢谢了。