Partage
  • Partager sur Facebook
  • Partager sur Twitter

Travail sur chaîne de caractère en R

Sujet résolu
    7 avril 2021 à 10:08:24

    Bonjour, 

    Je commence juste à programmer en R et j'ai quelques soucis pour traiter une chaîne de caractère. 

    Je me trouve dans un data.frame. Chaque case comporte une chaîne de caractère qui est de ce type : 11111_4444. 

    Mon objectif est de conserver uniquement le premier élément ( soit 11111 ). 

    Pour faire cela je fait un strsplit(as.caracter(nom_de_mon_data), split ="_", fixed = TRUE)

    Je me retrouve donc avec mes deux éléments séparés. Maintenant je ne trouve pas quelle fonction utiliser pour supprimer le second et conserver uniquement le premier éléments. 

    Pourriez-vous m'aider ? 

    Merci d'avance. 

    theter

    • Partager sur Facebook
    • Partager sur Twitter
      7 avril 2021 à 14:35:06

      a=strsplit("1111_4444", split ="_", fixed = TRUE)[[1]][1]
      ou
      a=unlist(strsplit("1111_4444", split ="_", fixed = TRUE))[1]

      -
      Edité par umfred 7 avril 2021 à 14:39:22

      • Partager sur Facebook
      • Partager sur Twitter
        7 avril 2021 à 15:01:16

        Il s'agit de la première étape mais je me demande à partir de là comment faire pour supprimer la seconde valeur. 

        1
        a=strsplit("1111_4444", split ="_", fixed = TRUE)[[1]][1]

        La manipulation ci-dessus donne un data présenté comme ça: 

        "c(\"1111" "4444\", \"2222" "3333\" ... 

        Mais seule la première valeur m'intéresse. J'ai essayé pleins de fonctions comme str_replace... mais rien ne fonctionne. 

        Auriez-vous des idées?

        Merci de votre aide

        • Partager sur Facebook
        • Partager sur Twitter
          9 avril 2021 à 9:35:57

          J'ai trouvé une solution à mon problème. Il ne s'agit pas d'utiliser strsplit mais plus simplement un gsub. 
          Voici un modèle à modifier selon le cas : 
          a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2") gsub("\\..*","",a) [1] "NM_020506" "NM_020519" "NM_001030297" "NM_010281" "NM_011419" "NM_053155" 
          • Partager sur Facebook
          • Partager sur Twitter

          Travail sur chaîne de caractère en R

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown