Placer une fenêtre de passage limité dans le temps avec la plus forte probabilité de passag

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Olivier Deligniere
Messages : 1
Enregistré le : 21 Mar 2019, 18:33

Placer une fenêtre de passage limité dans le temps avec la plus forte probabilité de passag

Messagepar Olivier Deligniere » 04 Avr 2019, 17:30

Bonjour à tous !

Je suis étudiant en biologie et débutant avec Rstudio, donc ma question va sans doute vous paraître un peu bête mais je tente !

Je possède un tableau excel avec des données de passage pas jours sur plusieurs années comme sur l'exemple si dessous (il y à des variations de quelques semaines selon les années). Mon objectif est de placer une fenêtre de passage de 80 jours (au vu des données il faudrait qu'elle soit séparée en deux) (nombre de jours non modifiable). La durée totale de ces deux périodes ne pas dépasser 80 et doivent avoir une probabilité de laisser le plus d'individus possible.

Voici comment est composé ma feuille excel :

Années Date Passages
2007 09/12/07 0
2007 10/12/07 0
2007 11/12/07 10
2007 12/12/07 0
2007 13/12/07 0
2007 14/12/07 0
2007 15/12/07 0
2007 16/12/07 0
2007 17/12/07 5
2007 18/12/07 0
2007 19/12/07 0
2007 20/12/07 0
2007 21/12/07 2
2007 22/12/07 0
2007 23/12/07 0
2007 24/12/07 4
2007 25/12/07 0
2007 26/12/07 0

Connaissez-vous des fonctions ou des méthodes pour réaliser ce genre d'opération ?
J’espère que vous avez compris ma situation et que vous aurez quelques solutions à me proposer.

Oliv'

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Placer une fenêtre de passage limité dans le temps avec la plus forte probabilité de passag

Messagepar Pierre-Yves Berrard » 04 Avr 2019, 22:14

Bonjour,

Une proposition pour calculer les 2 meilleures fenêtres (numéros de lignes) de 40 jours :

Code : Tout sélectionner

donnees <- data.frame(Passages = sample(0:6, size = 20, replace = TRUE))
long <- 5 # 40 dans votre exemple

somme_mobile <- function(x, n) {
  vapply(
    seq(length(x) - n + 1),
    function(i) sum(x[i:(i + n - 1)]),
    FUN.VALUE = numeric(1)
  )
}

r <- somme_mobile(donnees$Passage, long)
 
f1_1 <- which.max(r)
fenetre1 <- f1_1:(f1_1 + long - 1)

# vide sommes mobiles avec valeurs de fenetre1
supprime <-
  seq(
    max(1, f1_1 - long + 1),
    min(nrow(donnees), f1_1 + long - 1)
  )
r[supprime] <- NA

f2_1 <- which.max(r)
fenetre2 <- f2_1:(f2_1 + long - 1)

fenetre1 ; fenetre2
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité