Mis datos se ven así:
das <- data.frame(val=1:3,
beginning =c(10,20,40),
end=c(20,40,51))
val beginning end
1 1 10 20
2 2 20 40
3 3 40 51
Quiero dividir cada fila en 3 filas dividiendo el principio al final en partes iguales. Me gusta esto
Rendimiento esperado
> das
val beginning end
1 1 10 13
2 2 13 16
3 3 16 20
4 4 20 27
5 5 27 34
6 6 34 40
7 7 40 44
8 8 44 48
9 9 48 51
Me encontré con preguntas similares aquí, pero la mayoría de ellas corresponden al rango de fechas.
Puede usar uncount()
en tidyr
y luego calcular el incremento de cada uno val
.
library(dplyr)
library(tidyr)
das %>%
uncount(3) %>%
mutate(beginning = beginning + round((end - beginning)/3) * 0:2,
end = lead(beginning, default = last(end)))
# val beginning end
# 1 1 10 13
# 2 1 13 16
# 3 1 16 20
# 4 2 20 27
# 5 2 27 34
# 6 2 34 40
# 7 3 40 44
# 8 3 44 48
# 9 3 48 51
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras