Dieser ist wirklich stumping mich. Ich kann nicht finden, was mit dieser Codezeile falsch ist, und ich benutze es in einer Funktion und es macht die gesamte Funktion fehl.Subset mit dem Namen numerisch in R Fehler
Dies ist ein Vektor der Klasse ‚Matrix‘, result.1
:
SPY TLT VGK EEM BIV RWX IYR EWJ DBC GLD PCY LQD TIP
-0.08 0.09 -0.07 -0.07 -0.09 -0.07 -0.07 -0.07 -0.066 -0.04 -0.08 -0.08 -0.08
ich den Mittelwert dieses Vektors berechnen, indem diese Codezeile ausgeführt wird:
mean.momentum.1 <- mean(result.1)
Das Ergebnis ist ein numerischer Wert ein Wert von -0,062309. Ich möchte die Namen der Spalten erhalten, die größer als der Mittelwert ist, so dass ich diesen Code ausführen:
names(result.1[,(result.1 > mean.momentum.1)])
Der Ausgang ist als ich erwarte, ein Zeichen Vektor „TLT“, „GLD“ zurück.
Hier ist das Problem: wenn ich dies mit einer zweiten, fast identischen Matrix result.2
mache, bekomme ich jedes Mal ein NULL
Ergebnis, wenn ich das Ergebnis "TLT" bekommen sollte. Hier
ist die Matrix result.2
:
SPY TLT VGK EEM BIV RWX IYR EWJ DBC GLD TIP PCY LQD
-0.08 0.15 -0.07 -0.06 -0.054 -0.07 -0.07 -0.07 -0.06 -0.06 -0.07 -0.07 -0.06
I berechnen, den Mittelwert der gleichen Methode wie oben (-0,05298) und benennen Sie es mean.momentum.2
Dann laufen diese Linie I:
names(result.2[,(result.2 > mean.momentum.2)])
Ich bekomme NULL
jedes Mal zurück, wenn ich "TLT" erwarte. Was läuft falsch mit der Art, wie ich mich unterwerfe? Wenn ich die Linie laufen:
result.2 > mean.momentum.2
ich einen logischen Vektor, bei dem TLT ist TRUE
, aber es funktioniert nicht, wenn ich mit dieser Methode der Teilmenge versuchen. Es funktioniert in der ersten Instanz perfekt, aber funktioniert nie in der zweiten Instanz, und da ich NULL
zurück bekomme, schlägt meine gesamte Funktion fehl.
Danke ...
Es wäre gut, mit Daten zu beginnen und für beide Situationen Code zu zeigen. Wie du sagst, du verpasst etwas und die Sache, die du verpasst, ist höchstwahrscheinlich ein Fehler in deinem Code, den du nicht gesehen hast. Derzeit bitten Sie eine andere Person, Ihren Code zu debuggen, ohne ihn zuerst zu sehen. –
Dies ist der gesamte Code, der zum Reproduzieren des Fehlers benötigt wird. –
@JaredMarks Es ist höflich, den gesamten Code zur Verfügung zu stellen, der benötigt wird, um den Fehler zu reproduzieren. In diesem Fall würde das den Code zum Erstellen der Matrizen enthalten.Dies macht es einfach und schnell für Menschen, Ihnen zu helfen. –