Comment utiliser la fonction RollMean sur une seule colonne d'un objet zoo?

StackOverflow https://stackoverflow.com/questions/19826737

  •  05-07-2022
  •  | 
  •  

Question

J'essaye d'utiliser le rollmean Fonction sur un objet zoo qui contient des colonnes non numériques. Mon objectif est d'ajouter une nouvelle colonne à l'objet existant.

Pourquoi le code de test suivant ne fonctionne-t-il pas?

library(zoo)
d <- data.frame(time=c(1, 2, 3), foo=c('a', 'b', 'c'), bar=c(32, 4, 1))
z <- zoo(d, order.by=d$time)
rollmean(z$bar, 2)

J'obtiens une erreur "argument non numérique à l'opérateur binaire". La fonction ne devrait-elle pas utiliser uniquement la colonne de barre? Dois-je créer un objet de zoo séparé pour la colonne de barre, utiliser la fonction de roulement dessus puis fusionner les résultats avec z?

Était-ce utile?

La solution

Utiliser As.numérique pour le convertir en vecteur

rollmean(as.numeric(z$bar), 2)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top