Я полагаю, вы не понимаете, как работает цикл for.Запустив приведенный ниже код, вы сможете увидеть, как он точно использует входы для i и j.
for(i in metaxcan)for(j in predix_asso)print(paste(i,j))
Для вашей проблемы я предлагаю использовать один цикл for:
for(i in seq_along(metaxcan)){
PGC <- read.csv(metaxcan[i], header = TRUE, sep = ",")
asociacion<-read.table(predix_assp[i], header=T, sep = "")
PGC_predix <- merge(PGC, asociacion, by = "gene")
print(ngenes <- nrow(PGC_predix))
}
Здесь я использую seq_along
, который создаст целочисленный вектор по длине метаксана (аналогично 1:length(metaxcan)
, но он обрабатывает случай, когда длина равна 0 без ошибки)