Если мы предположим, что для каждой временной метки есть текст, тогда мы могли бы сделать:
data.frame(matrix(df$var1, nrow(df)/2, byrow=TRUE))
X1 X2
1 00:40:01.530 --> 00:40:03.480 Alex High School: Yeah. Again, Megan.
2 00:40:05.970 --> 00:40:06.330 Alex High Five: Megan.
3 00:40:08.190 --> 00:40:11.520 Charlie High School: Know how did with code Daniel go first.
4 00:40:12.600 --> 00:40:12.810 Charlie High School: But
Если это не так, тогда вам придется изменить форму данных:
reshape(transform(df, id = id <-cumsum(grepl("-->",df$var1)), time= ave(id, id, FUN = seq)), v.names="var1", dir="wide")
id var1.1 var1.2
1 1 00:40:01.530 --> 00:40:03.480 Alex High School: Yeah. Again, Megan.
3 2 00:40:05.970 --> 00:40:06.330 Alex High Five: Megan.
5 3 00:40:08.190 --> 00:40:11.520 Charlie High School: Know how did with code Daniel go first.
7 4 00:40:12.600 --> 00:40:12.810 Charlie High School: But