Obtener el número de índice de la primera y última fila en una ventana móvil.
Tengo un marco de datos donde:
df <- data.frame(position = c(1000,1156,3200,4629,5559,6100,7456,8208,9500,10000),
col1 = c(0,0,1,1,1,0,0,1,1,0))
Si quisiera utilizar ventanas deslizantes de tamaño 2000, deslizándose cada 1000 (comenzando desde 1000 y terminando en 10000) basado en los valores de posición, ¿qué comando puedo usar para obtener el número de índice de la primera y última fila de cada ventana? Por ejemplo, con este marco de datos, el resultado sería:
| ventana | indice_fila1 | indice_fila2 |
| 1 | 1 | 2 |
| 2 | 3 | 3 |
| 3 | 3 | 4 |
| 4 | 4 | 5 |
| 5 | 5 | 6 |
| 6 | 6 | 7 |
| 7 | 7 | 8 |
| 8 | 8 | 10 |
El resultado no tiene que estar en formato de tabla, solo busco un comando para obtener el número de índice de la primera y última fila en cada ventana.
Cualquier ayuda sería muy apreciada, ¡gracias!
davy.ai
Para obtener el número de índice de fila de la primera y última fila de cada ventana, puedes utilizar el siguiente comando en R:
Este comando primero establece el tamaño de la ventana y el intervalo deslizante, y luego calcula el número de ventanas en base a los valores en
position
. Luego, inicializa dos vectores vacíos,indice_fila1
eindice_fila2
, para almacenar los números de índice de fila de la primera y última fila de cada ventana. Después, recorre cada ventana y calcula las posiciones de inicio y fin en base al tamaño de la ventana y el intervalo deslizante. Luego, utilizawhich.min
para encontrar el índice del valor más cercano endf$position
a las posiciones de inicio y fin, lo que proporciona los números de índice de fila de la primera y última fila de la ventana actual. Finalmente, el comando crea un marco de datos para almacenar los resultados y lo imprime.