Calcule la suma acumulada después de un período de tiempo establecido

Taylorpot

Tengo un marco de datos con datos COVID y estoy tratando de hacer una columna que calcule la cantidad de personas recuperadas en función de la cantidad de pruebas positivas.

Mis datos tienen una ubicación, una fecha y la cantidad de pruebas administradas / resultados positivos / resultados negativos cada día. Aquí hay algunas líneas que usan una ubicación como ejemplo (los datos reales tienen fechas de varios meses):

loc    date        tests  pos  neg  active
spot1  2020-04-10  1      1    0    5
spot1  2020-04-11  2      1    1    6
spot1  2020-04-12  0      0    0    6
spot1  2020-04-13  11     1    10   7

Quiero crear una nueva columna que cuente de manera acumulativa cada prueba positiva en cada ubicación 14 días después de que se registre. El 24-04-2020, las 5 clases activas ya no están activas, por lo que quiero una columna recuperada con 5. Para cada fecha, quiero que se agreguen los nuevos casos no activos.

Mi primer pensamiento fue probarlo en un bucle:

df1 <- df %>%
  mutate(date = as.Date(date)) %>%
  group_by(loc) %>%
  mutate(rec = for (i in 1:nrow(df)) {
  #getting number of new cases
  x <- df$pos[i]
  #add 14 days to the date
  d <- df$date + 14
  df$rec <- sum(x)
})

Como puede ver, no soy el mejor escribiendo para bucles. Eso me da un montón de números, pero tiene muy poca relación significativa con los datos.

También lo probé con map_dbl:

df1 <- df %>%
  mutate(date = as.Date(date)) %>%
  group_by(loc) %>%
  mutate(rec = map_dbl(date, ~sum(pos[(date <= . + 14) & date >= .])))

Lo que resultó en el mismo número impreso en toda la columna rec.

¿Alguna sugerencia? (Perdón por la larga explicación, solo quiero asegurarme de que todo esto tenga sentido)

AnilGoyal

Sus datos de muestra muestran que:

  • tienes todas las fechas continuas a pesar de las 0pruebas (12 de abril)
  • Active La columna parece ya una cumsum

Por lo tanto, creo que simplemente puedes usar la lagfunción con argumento14

código de ejemplo

df %>% group_by(loc) %>% mutate(recovered = lag(active, 14)) %>% ungroup()

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

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Calcule la suma acumulada después de un período de tiempo establecido

suma acumulada a lo largo del período de tiempo

Pandas: calcule la suma de valores para cada elemento único ('ID') en un período de tiempo determinado y luego calcule la mediana de todos los 'ID'

Pandas: calcule la suma de valores para cada elemento único ('ID') en un período de tiempo determinado y luego calcule la mediana de todos los 'ID'

¿Cómo apagar automáticamente la transmisión de una cámara después de un período de tiempo establecido en OpenCV?

Pyppeteer. El navegador Chromium deja de cargar páginas después de un período de tiempo establecido

Pyppeteer. El navegador Chromium deja de cargar páginas después de un período de tiempo establecido

Eliminar la instancia de la clase creada después de un cierto período de tiempo

Calcule la fecha de un período de tiempo en el pasado desde hoy

Restablecer la suma acumulada después de 10 valores

La caché de Apache Ignite se congela después de un período de tiempo

Lista de individuos donde la suma durante un período de tiempo es igual a cero

Lista de individuos donde la suma durante un período de tiempo es igual a cero

Detener la notificación local después de un período de tiempo específico

La cámara tartamudea después de un período de tiempo aleatorio

Cómo mostrar la animación de carga durante un período de tiempo establecido a solicitud de AJAX

¿Eliminar el depósito S3 si está inactivo durante un período de tiempo establecido?

La mayoría de las formas Pythonic de matar un hilo después de un período de tiempo

La mayoría de las formas Pythonic de matar un hilo después de un período de tiempo

Fusión automática de la rama provisional a la principal cada período de tiempo establecido

¿Cómo obtengo los 5 mejores resultados en influxdb después de la suma de valores durante un período?

Mejorar la forma de matar un nodo después de un período de tiempo específico.

Retire la rueda giratoria de carga después de un tiempo establecido

Eliminar una entidad de la base de datos después de un cierto período de tiempo

¿Cómo llamar recursivamente a una función por un período de tiempo establecido?

Codifique si 2 condiciones son verdaderas durante un período de tiempo establecido

Codifique si 2 condiciones son verdaderas durante un período de tiempo establecido

La conexión de Arduino falló en el bucle después de un período de tiempo aleatorio

Disparador o evento de mysql para ejecutar la actualización después de un período de tiempo (60 segundos)

TOP Lista

  1. 1

    ¿Cómo ocultar la aplicación web de los robots de búsqueda? (ASP.NET)

  2. 2

    uitableview delete button image in iOS

  3. 3

    Pandas의 CSV 파일을 Pandas 데이터 프레임으로 가져 오기

  4. 4

    El nombre 'HttpContext' no existe en el contexto actual en Razor

  5. 5

    Verilog : 입력 신호를 한 클럭 주기로 지연시키는 방법은 무엇입니까?

  6. 6

    WPF pleine largeur DataGridColumn sur la largeur de DataGrid

  7. 7

    Manera correcta de agregar referencias al proyecto C # de modo que sean compatibles con el control de versiones

  8. 8

    Python, Pandas para hacer coincidir el marco de datos e indicar los hallazgos de una lista

  9. 9

    No se puede trazar la barra doble, trazar la barra usando pyplot para ndarray

  10. 10

    2D 배열에 대한 Numpy 요소 별 평균 계산

  11. 11

    ¿Cómo formatear el valor mínimo y máximo de android-range-seek-bar?

  12. 12

    Problème avec le dessin d'un élément Qml avec des appels OpenGL bruts

  13. 13

    Enlace débil de iOS Framework: error de símbolos indefinidos

  14. 14

    desbordamiento: oculto no funciona al hacer zoom en un iframe de YouTube usando transformar

  15. 15

    Swift / Firebase : Facebook 사용자가 계정을 만들 때 Firebase 데이터베이스에 제대로 저장하려면 어떻게해야합니까?

  16. 16

    multiplica dos números negativos en c ++

  17. 17

    Pandas: suma filas de DataFrame para columnas dadas

  18. 18

    matplotlib로 그래프를 그리는 동안 커서 위치에서 날짜 / 시간을 볼 수 없습니다. "DateFormatter에서 x = 0 값을 찾았습니다"라는 오류가 발생합니다.

  19. 19

    UIButton textLabel with different fonts

  20. 20

    Error de la base de datos de Android Firebase: Permiso denegado al depurar en un teléfono

  21. 21

    Room compile problem - column references a foreign key but it is not part of an index

CalienteEtiquetas

Archivo