Как извлечь часть строки с помощью R и поместить их в разных колонках

голоса
-1

У меня есть столбец текста, из которого я хочу, чтобы извлечь куски информации и поместить их в новых столбцах.

Пример:

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

Решение, которое я ищу, когда мы применяем R регулярное выражение предполагаемый результат должен быть, как показано ниже. Текст разделен на 3 разных столбцов на основе своего присутствия.

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

Текст-2

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

finding <- NA

resolution <- please check the validity

Текст-3

issue <- NA

finding <- we need further investigation on this

resolution <- please check the validity

Текст-4

issue <- NA

finding <- NA

resolution <- please check the validity

Пожалуйста помоги

Задан 09/10/2019 в 13:01
источник пользователем
На других языках...                            


1 ответов

голоса
0

Вы можете использовать пакет отклеить :

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>

Созданный на 2019-10-09 в пакете reprex (v0.3.0)

Это не будет иметь большую помощь, если ваш реальный случай имеет намного больше комбинаций, чем этот пример, но в этом случае он работает нормально, мы даем 3 возможных моделей в векторе и первый рабочий шаблон используется, результаты приведены в кадре данных с одного столбца для каждой извлеченной переменной.

Для запуска из кадра данных и добавить столбцы, использование unglue_unnest(your_df, your_col, patterns)и установить , remove = FALSEесли вы хотите сохранить исходный столбец.

Ответил 09/10/2019 в 14:46
источник пользователем

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