Я получаю эту ошибку:
Ошибка в TOM [modGenes, modGenes]: (нижний индекс) слишком длинный логический индекс
Когда я запускаю приведенный ниже код.Я попробовал большинство применимых советов по отладке из подобных случаев этого вопроса.Большинство связано с размерами не совпадают.Поскольку оба аргумента подмножества являются modGenes, это не должно быть проблемой здесь.У кого-нибудь есть советы?
#get the numbers of modules and genes in each module
modTable = table(colors);
nMods = length(modTable);
#loop through modules to build vector of module densities
modDensities = c();
for (m in 1:nMods) {
#if the current module is grey and skipGrey=T, assign density of 0 and move to next module
checkGrey = names(modTable)[m] == 'grey';
if (skipGrey & checkGrey) {
modDensities = c(modDensities, 0);
next;
}
#otherwise get the indices for genes in the current module
#modGenes = colors == names(modTable)[m];
modGenes = is.finite(match(colors, names(modTable)[m]));
#subset the TOM for genes in the current module and compute the density as mean TOM
modTOM = TOM[modGenes, modGenes];
modDensities = c(modDensities, mean(vectorizeMatrix(modTOM, diag=diag)));}
Это структуры набора данных, с которыми я работаю:
Browse[1]> str(nMods)
int 6
Browse[1]> str(modGenes)
logi [1:993] FALSE FALSE FALSE FALSE FALSE FALSE ...
Browse[1]> str(modTOM)
Error during wrapup: object 'modTOM' not found
Browse[1]> str(TOM)
num [1:992, 1:992] 0 0.011894 0.003361 0.000277 0.011767 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:992] "1" "2" "3" "4" ...
..$ : chr [1:992] "1" "2" "3" "4" ...
Browse[1]> str(modDensities)
NULL
Browse[1]> str(modTable)
'table' int [1:6(1d)] 151 124 106 339 156 117
- attr(*, "dimnames")=List of 1
..$ colors: chr [1:6] "blue" "brown" "green" "grey" ...