Comment extraire des parties de chaîne en utilisant R et les placer dans différentes colonnes

voix
-1

J'ai une colonne de texte à partir de laquelle je veux extraire des éléments d'information et placez-les dans une nouvelle colonne.

Exemple:

Text-1 <- issue : there has been considerable changes and it is going on. finding : we need further investigation on this. resolution: please check the validity

Text-2 <- issue : there has been considerable changes and it is going on. resolution: please check the validity

Text-3 <- finding : we need further investigation on this. resolution: please check the validity

Text-4 <- please check the validity

La solution que je cherche est quand on applique la R expression régulière le résultat escompté doit être comme ci-dessous. Le texte est divisé en 3 colonnes différentes en fonction de sa présence.

Texte-1

issue <- there has been considerable changes and it is going on 

finding <- we need further investigation on this

resolution <- please check the validity

Text-2

issue <- there has been considerable changes and it is going on

finding <- NA

resolution <- please check the validity

Text-3

issue <- NA

finding <- we need further investigation on this

resolution <- please check the validity

Text-4

issue <- NA

finding <- NA

resolution <- please check the validity

S'il vous plaît aider

Créé 09/10/2019 à 13:01
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

Vous pouvez utiliser le package Détacher :

library(unglue)
text <- c(
  "issue : there has been considerable changes and it is going on. finding : we need further investigation on this. resolution: please check the validity",
  "issue : there has been considerable changes and it is going on. resolution: please check the validity",
  "finding : we need further investigation on this. resolution: please check the validity",
  "please check the validity")

patterns <- c("issue : {issue}. finding : {finding}. resolution: {resolution}",
              "issue : {issue}. resolution: {resolution}",
              "finding : {finding}. resolution: {resolution}")

unglue_data(text, patterns)
#>                                                    issue
#> 1 there has been considerable changes and it is going on
#> 2 there has been considerable changes and it is going on
#> 3                                                   <NA>
#> 4                                                   <NA>
#>                                 finding                resolution
#> 1 we need further investigation on this please check the validity
#> 2                                  <NA> please check the validity
#> 3 we need further investigation on this please check the validity
#> 4                                  <NA>                      <NA>

Créé le 09/10/2019 par le paquet reprex (v0.3.0)

Il ne sera pas d'un grand secours si votre cas réel a beaucoup plus de combinaisons que cet exemple, mais dans ce cas, il fonctionne bien, nous donner les 3 modèles possibles dans un vecteur et le premier motif de travail est utilisé, les résultats sont donnés dans une trame de données avec une colonne pour chaque variable extraite.

Pour démarrer à partir d' une trame de données et ajouter des colonnes, utilisez unglue_unnest(your_df, your_col, patterns)et définir remove = FALSEsi vous voulez garder la colonne d' origine.

Créé 09/10/2019 à 14:46
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more