Ersetze -inf, NaN und NA Werte mit Null in einem Datensatz in R

7

Ich versuche einige Handelsstrategien in R zu betreiben. Ich habe einige Aktienkurse und berechnete Renditen heruntergeladen. Der neue Rückkehrdatensatz hat eine Anzahl von -inf-, NaN- und NA-Werten. Ich reproduziere eine Zeile des Datensatzes (log_ret). Es ist ein Zoo-Datensatz.

%Vor%

Wie kann ich diese unerwünschten Werte durch 0 ersetzen?

    
user2641784 22.06.2015, 22:34
quelle

3 Antworten

13

Gemäß ?zoo :

  

Subskribierung durch ein Zoo-Objekt, dessen Daten enthält        logische Werte sind nicht definiert.

Sie müssen also die Teilmenge in einen which -Aufruf einbinden:

%Vor%     
thelatemail 22.06.2015, 23:23
quelle
12

Inf , NA und NaN werden mit !is.finite verglichen, zum Beispiel

%Vor%

Ich weiß nicht sehr viel über die Manipulation von zoo -Objekten, aber für das obige Beispiel

%Vor%

funktioniert. In Ihren tatsächlichen Daten müssen Sie alle Zeilen durchlaufen. Es könnte eine zoo -spezifische Vorgehensweise geben.

Bearbeiten: Der Zoo-spezifische Weg ist log_ret[which(!is.finite(log_ret))] <- 0 .

    
sieste 22.06.2015 22:41
quelle
3

Eine andere Möglichkeit ist (wo df = Ihr Datenrahmen):

%Vor%

Ich weiß nicht, ob das für Zoo-Objekte funktioniert, aber es geht um das Problem, dass is.infinite () nur an Vektoren arbeitet.

    
Grubbmeister 05.05.2017 07:22
quelle

Tags und Links