Remplacez -inf, NaN et NA les valeurs à zéro dans un jeu de données dans R
Je suis en train de lancer certaines stratégies de négociation dans R. j'ai téléchargé quelques-uns des prix des actions et calculé les rendements. Le retour du jeu de données un certain nombre d'-inf, NaN, et NA les valeurs. Je fabrique une ligne de la base de données (log_ret). Son zoo jeu de données.
library(zoo)
log_ret <- structure(
c(0.234,-0.012,-Inf,NaN,0.454,Inf), .Dim = c(1L, 6L),
.Dimnames = list(NULL, c("x", "y", "z", "s", "p", "t")),
index = structure(12784, class = "Date"),
class = "zoo"
)
x y z s p t
2005-01-01 0.234 -0.012 -Inf NaN 0.454 Inf
Comment puis-je remplacer ces valeurs indésirables avec 0?
OriginalL'auteur user2641784 | 2015-06-22
Vous devez vous connecter pour publier un commentaire.
Comme par
?zoo
:Si vous avez besoin d'envelopper le. dans un
which
appel:OriginalL'auteur thelatemail
Inf
,NA
etNaN
sont appariés par!is.finite
, par exempleJe ne sais pas trop à propos de la manipulation de
zoo
objets, mais pour l'exemple ci-dessusœuvres. Dans vos données, vous devrez en boucle sur toutes les lignes. Il y a peut être un
zoo
de manière spécifique de le faire.Edit: Le zoo de manière spécifique est
log_ret[which(!is.finite(log_ret))] <- 0
.OriginalL'auteur sieste
Une autre façon de le faire est (où df=votre dataframe):
Je ne sais pas si cela fonctionne pour zoo objets, mais il permet de contourner le problème de l'est.l'infini() ne travaillent que sur des vecteurs.
OriginalL'auteur Grubbmeister