Вы можете использовать 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 |
+----------------------+--------+------------------+----+