Ersetzen,- inf, NaN und NA-Werte mit null in einem Datensatz in R
Ich versuche zu laufen einige trading-Strategien in R. heruntergeladen habe ich einige Aktienkurse und berechneten Renditen. Die neue return dataset hat eine Reihe von -inf, NaN und NA-Werte. Ich bin bezüglich einer Zeile des dataset (log_ret). Seine zoo-dataset.
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
Wie kann ich ersetzen Sie diese unerwünschte Werte mit 0?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro
?zoo
:So müssen Sie wickeln Sie die Untergruppen in einer
which
nennen:Inf
,NA
undNaN
abgestimmt mit!is.finite
zum BeispielIch weiß nicht allzu viel über die Manipulation
zoo
Objekte, aber für das Beispiel obenfunktioniert. In Ihrer aktuellen Daten, die Sie haben, um eine Schleife über alle Zeilen. Es könnte ein
zoo
-spezifischen Art und Weise, dies zu tun.Edit: Die zoo-spezifischen Art und Weise ist
log_ret[which(!is.finite(log_ret))] <- 0
.Anderen Weg, es zu tun ist (wobei df=Ihr dataframe):
Ich weiß nicht, ob das funktioniert für zoo-Objekte, aber es wird sich um das problem der ist.unendlich() funktioniert nur bei Vektoren.