Bonjour,

Je rencontre un soucis avec un script, ca fait plus d'une heure que je bloque dessus.
R me dit que j'ai des unmatched opening bracket.
Pourtant, après avoir relu mon code des dizaines de fois, je n'ai pas trouvé mon erreur. En plus quand je clique sur les accolades/parenthèse soit disant fautives, elle sont bien "matched" avec une autre, qui est surlignées en grise.

Bref, je ne comprend pas d'ou vient le soucis. Merci de me venir en aide.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
library(tidyverse)
 
remplacer_manquant <- function(list_genotype){
 
  df_diff <- data.frame()
 
    # initialisation :
  count <- 0 # sert plus tard pour connaitre le % d'avancement du calcul.
  debut <- Sys.time() # timer pour connaitre la durée totale du calcul.
 
    for i in list_genotype{
 
     # initialisation :
     genotype_consensus <- NULL # Genotype consensus pour un numéro de clone unique (1 ligne)-
      list_genotype_consensus <- NULL # liste des listes des genotypes consensus (x lignes)
 
     # liste des individus pour ce numéro de clone i :
 
      list_individus <- df  %>%  filter(clone_id == i) %>% slice()
 
        for row in 1:nrow(list_individus){
 
        individu <- list_individus %>% slice(row)
        print(individu)
        text_individu <- list_individus[row,]
 
        # Initialisation 
        nb_NA <-  sum(is.na(individu))
 
              if (nb_NA>60){ # ncol(individu)*80/100
 
                      for col in 3:ncol(df){ # nb : '3' car les deux premières colonnes de dff ne sont pas des alleles
 
                      table <- as.data.frame(table(df[,col][which(df$clone_id==i)])) #création d'un tableau de correspondance, qui nous donne l'occurence des différents allele pour un snp donné.
                      max_allele <- max(table$Freq) # on extrait le nombre de fois ou l'allele le plus représenté apparait dans la colonne.
                      allele_majoritaire <- as.character(t$Var1[which(table$Freq==max_allele)]) # on extrait les charactères alphabétiques de l'allele
 
                           if (max_allele>=3){ # si l'allele apparait au moins 3 fois
                           # on remplace les NAs par l'allele majoritaire
                           df[,col][is.na(df[,col])] <- allele_majoritaire
                           #création d'un génotype consensus pour chaque numéro de clone
                           genotype_consensus <- append(genotype_consensus, allele_majoritaire)
                           # print(genotype_consensus)
 
                           }else{
                           # message(c(message = 'le numéro de clone ',i, message =' n a pas assez de SNPs identiques pour compléter les NAs'))
                           genotype_consensus <- append(genotype_consensus, NA)
                           }
                      }
 
               }else{  
                message(c(message = 'l individu ', text_individu, message = ' a trop de NA. Les NA n ont pas été complétées'))
               }
        }
 
     list_genotype_consensus <- rbind(as.list(list_genotype_consensus),as.list(genotype_consensus))
 
     # Progression du temps de calcul :
     count <- count + 1
     x <- round((100*count)/length(list_genotype),0)
     message(c(x), message = "%")
 
    }
 
# Temps écoulé :
fin <- Sys.time()
Time_elapsed <- fin-debut
print(Time_elapsed)
 
#afficher résultats
 
}
 
# lancer la fonction :
resultat <- remplacer_manquant(unique(df$clone_id))