2017-07-19 2 views
1

J'ai un petit problème à propos de la question ci-dessus. Pour être précis, j'ai deux variables de date dans R avec date de début et de fin: un cas commence dans 2000-1-1 se termine dans 2000-4-1.résumer une valeur statistique basée sur la durée de la date dans R

J'ai aussi une variable qui enregistre un résultat médical dans ces dates, disons que dans 2000-1-1 le résultat est 20; et dans 2000-2-1/2000-3-1/2000-4-1, les résultats sont 30,30 et 50.

Je veux calculer la moyenne de ces variables en fonction de chaque durée des dates, en Dans notre cas, la moyenne sera de 32,5 (130/4).

Comment puis-je l'obtenir dans R studio? Merci d'avance.

Ethan

Répondre

0

On dirait que vous avez besoin d'utiliser la fonction d'agrégation pour calculer les sommes de vos valeurs pour chaque trimestre.

EDITED Il semblerait que vous n'utilisiez pas les trimestres de l'année comme intervalle de temps, mais les trimestres? donc jan-apr est une catégorie, mai-août en est une autre, et sep-dec est la dernière ?? Si tel est le cas, vous ne pouvez pas utiliser lubricidate :: quarter(), vous devrez donc écrire votre propre fonction vectorisée qui traitera de ce trimestre et assignera chacun un nombre. Cela peut se faire facilement par:

trimester <- function(date){ 
    if(lubridate::month(date) >= 1 & lubridate::month(date) <= 4) return(1) 
    if(lubridate::month(date) >= 5 & lubridate::month(date) <= 8) return(2) 
    if(lubridate::month(date) >= 9 & lubridate::month(date) <= 12) return(3)} 

VectorizedTrimester <- Vectorize(trimester)

Ensuite, votre agrégation réelle peut être réalisée par:

aggregate(formula = OrderValue ~ VectorizedTrimester(OrderDate), FUN = mean)

C'est le meilleur que je peux vous donner avec ce que vous avez fourni, pensez à utiliser les noms de variables et le code réel dans votre question la prochaine fois pour une meilleure réponse.