Сложно сказать из вопроса, что вы хотите, но если бы я смог что-то расшифровать, я думаю, вы хотите создать комбинации матриц 2X2 из столбцов матрицы 2X400.
Так что вы быесть 79800 комбинаций?Я думаю.
choose(400,2) = 79800
Я предполагаю, что для fisher.test i, j совпадает с j, i, и что i = j не имеет особого смысла, поэтому
я быначните с выполнения функции:
alelos = function(i,j){
alleys= matrix(c(df[,i],df[,j]),nrow=2,byrow=F)
#df is the 2X400 matrix, called data in the question
return(fisher.test(alleys)$p.value)
}
Затем попробуйте циклы с for (i в 1: 400) и какое-то время?или что-то, что делает треугольную матрицу с результатами.Например:
Я приведу пример с вектором из 10 столбцов.
То же самое должно работать для 400.
set.seed(4)
df= matrix(c(sample(1:100,10,replace=T),sample(1:100,10,replace=T)),nrow=2)
resultmatrix = matrix(0,10,10)
#or 10x9 if you prefer
for(i in 10:1){
j=1
while(i > j){
resultmatrix[i,j]= alelos(i,j)
j=j+1
}
}