Cum de a extrage părți din șir utilizând R și puneți-le în diferite coloane

voturi
-1

Am o coloană de text din care vreau să extragă bucăți de informații și puneți-le într-o nouă coloane.

Exemplu:

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

Soluția pe care o caut este atunci când aplicăm R expresia regulată rezultatul intenționat ar trebui să fie ca mai jos. Textul este împărțit în 3 coloane diferite, în funcție de prezența sa.

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

Te rog ajuta-ma

Întrebat 09/10/2019 la 13:01
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Puteți utiliza pachetul dezlipi :

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>

Creat pe 2019-10-09 de pachetul reprex (v0.3.0)

Nu va fi de mare ajutor în cazul în cazul tău real are mult mai multe combinații decât acest exemplu, dar în acest caz funcționează OK, vom da cele 3 posibile modele într-un vector și primul model de lucru este utilizat, rezultatele sunt date într-un cadru de date cu o singură coloană pentru fiecare variabilă extras.

Pentru a porni de la un cadru de date și adăugați coloane, utilizarea unglue_unnest(your_df, your_col, patterns)și setați remove = FALSEdacă doriți să păstrați coloana originală.

Publicat 09/10/2019 la 14:46
sursa de către utilizator

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