Tengo un marco de datos llamado df. Hay 20 filas y 2 variables test_value y day. Me gustaría crear una nueva variable llamada test_x_max. Capturará el valor máximo de los registros x anteriores. Ejemplo: si asumimos que X es 5, entonces si estamos mirando la fila 15, debe elegir el valor de prueba máximo entre el día 10 y el día 15. ¿Cómo puedo lograr esto? Gracias por adelantado. Pavana
Puede usar zoo::rollmax
combinado con cummax
:
library(zoo)
df$test_x_max <- c(cummax(df$test_value[1:4]), rollmax(df$test_value, 5, align = "right"))
Por ejemplo:
set.seed(100)
df <- data.frame(day = 1:20, test_value = sample(20))
df$test_x_max <- c(cummax(df$test_value[1:4]), rollmax(df$test_value, 5, align = "right"))
df
#> day test_value test_x_max
#> 1 1 10 10
#> 2 2 6 10
#> 3 3 16 16
#> 4 4 14 16
#> 5 5 12 16
#> 6 6 7 16
#> 7 7 19 19
#> 8 8 17 19
#> 9 9 4 19
#> 10 10 15 19
#> 11 11 13 19
#> 12 12 2 17
#> 13 13 11 15
#> 14 14 8 15
#> 15 15 3 13
#> 16 16 9 11
#> 17 17 1 11
#> 18 18 20 20
#> 19 19 18 20
#> 20 20 5 20
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