Hoe kan delen van string met behulp van R halen en plaats ze in verschillende kolommen

stemmen
-1

Ik heb een kolom tekst waaruit ik wil stukjes informatie halen en leg ze in een nieuwe kolommen.

Voorbeeld:

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

De oplossing die ik ben op zoek naar is wanneer we de R reguliere expressie van het beoogde resultaat zou moeten zijn hieronder te passen. De tekst is verdeeld in 3 verschillende kolommen basis van zijn aanwezigheid.

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

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

Help alstublieft

De vraag is gesteld op 09/10/2019 om 13:01
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

U kunt het pakket gebruiken unglue :

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>

Gemaakt op 2019/10/09 door de reprex pakket (v0.3.0)

Het zal niet veel helpen als uw echte case heeft veel meer combinaties dan dit voorbeeld, maar in dit geval het werkt ok, geven we de 3 mogelijke patronen in een vector en de eerste werkdag patroon wordt gebruikt, worden de resultaten gegeven een dataframe met één kolom voor elke variabele geëxtraheerd.

Om te beginnen uit een data frame en kolommen, het gebruik toe te voegen unglue_unnest(your_df, your_col, patterns)en stel remove = FALSEals je wilt naar de originele kolom te houden.

antwoordde op 09/10/2019 om 14:46
bron van user

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