Estou trabalhando com transcrições de fala:
Utterance Starttime_ms Endtime_ms
<chr> <dbl> <dbl>
1 on this 210 780
2 okay 3403 3728
3 cool thanks everyone um 4221 5880
4 so yes in terms of our projects 5910 11960
5 let's have a look so the 11980 13740
6 LGBTQ plus 13813 16110
e gostaria de inserir após cada Utterance
uma nova linha indicando o intervalo de tempo em relação ao anterior Utterance
. A saída desejada seria mais ou menos assim:
Utterance Starttime_ms Endtime_ms
<chr> <dbl> <dbl>
1 on this 210 780
NA 780 3403
2 okay 3403 3728
NA 3728 4221
3 cool thanks everyone um 4221 5880
NA 5880 5910
4 so yes in terms of our projects 5910 11960
NA 11960 11980
5 let's have a look so the 11980 13740
NA 13740 13813
6 LGBTQ plus 13813 16110
Eu sei como fazer isso em data.table
:
library(data.table)
unq <- c(0, sort(unique(setDT(df)[, c(Starttime_ms, Endtime_ms)])))
df <- df[.(unq[-length(unq)], unq[-1]), on=c("Starttime_ms", "Endtime_ms")]
Mas estou procurando uma dplyr
solução.
Dados:
df <- structure(list(Utterance = c("on this", "okay", "cool thanks everyone um",
"so yes in terms of our projects",
"let's have a look so the", "LGBTQ plus"), Starttime_ms = c(210,
3403, 4221, 5910, 11980, 13813), Endtime_ms = c(780, 3728, 5880,
11960, 13740, 16110)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
Eu uso
local()
aqui para criar um ambiente de execução localStarttime_ms
eEndtime_ms
substituir um ao outro se você fizer isso:e em vez de gerar um único valor, retorno um quadro de dados que aproveita o fato de que as
mutate()
reticências...
podem usar um quadro de dados ou tibble para criar várias colunas na saída.Saída
Não é elegante em particular, mas é
dplyr
um:Saída:
Uma abordagem usando
uncount
Você pode tentar o código abaixo
que dá
Aqui está uma
dplyr
solução simples. Observe que a maioria dos elementos que usei também foram mencionados pelos colegas anteriormente!Algumas referências: