Как разделить текст в DataFrame - PullRequest
0 голосов
/ 24 сентября 2019

Можете ли вы помочь мне разграничить данные в столбце 1 (необработанный текст) до

столбец 2 (имя), столбец 3 (отметка времени), столбец 4 (речь_текст)?

Данные выглядят так:


    column 1                                                         column 2
[1] firstname Lastname:           00:01     text text. text.          0
[2] firstname lastname2:          00:008    text, text text.          0

Мне нужно, чтобы они выглядели как

column1                     column 2      colum3

[1] Firstname lastname      00:01         text text. text.
[2] firstname lastname2     00:08         text, text text.

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете использовать strsplit и regex, чтобы найти более 3 пробелов вместе.

#Replication of the dataframe
l1 = "firstname Lastname:           00:01     text text. text.          0"
l2 = "firstname lastname2:          00:008    text, text text.          0"
df = rbind(l1,l2)

# Using strsplit with Regex to find separation with 3 or more spaces.

df2=as.data.frame(matrix(unlist(strsplit(df,"\\s{3,}")),nrow = nrow(df), byrow=T),stringsAsFactors = F)

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

Вывод:

+----------------------+--------+------------------+----+
|          V1          |   V2   |        V3        | V4 |
+----------------------+--------+------------------+----+
| firstname Lastname:  | 00:01  | text text. text. |  0 |
| firstname lastname2: | 00:008 | text, text text. |  0 |
+----------------------+--------+------------------+----+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...