R: Warum ist die Klasse Date beim Subsetting verloren?

8

Hier ist ein einfaches Beispiel. Ich habe einen Datenrahmen mit drei Daten drin:

%Vor%

Nun füge ich eine Spalte hinzu, die aus den gleichen Einträgen besteht:

%Vor%

Die Ausgabe sieht folgendermaßen aus:

%Vor%

Aus unbekannten Gründen ist die Klasse der Spalte date2 numerisch anstelle des Datums, das die Klasse des Datums war. Seltsamerweise, wenn Sie R ausdrücklich mitteilen, das Datumsformat zu verwenden:

%Vor%

macht keinen Unterschied.

%Vor%

Das Problem scheint in der Verwendung von subsetting [] zu liegen, in interessanteren Beispielen, in denen Sie zwei Datumsspalten haben und eine dritte erstellen möchten, die ein Datum aus einer der beiden anderen Spalten abhängig von einem bestimmten Faktor wählt Gleiches passiert.

Natürlich können wir im Nachhinein alles reparieren, indem wir etwas tun wie:

%Vor%

aber ich frage mich immer noch: warum? Warum passiert dies? Warum können meine Daten nicht einfach Daten bleiben, wenn sie in eine andere Spalte übertragen werden?

    
Vincent 01.07.2013, 14:50
quelle

1 Antwort

6

Das ist keine endgültige Lösung, aber ich denke, das kann helfen, es zu verstehen.

Hier Ihre Daten:

%Vor%

Nehmen Sie diese zwei Vektoren, von denen einer standardmäßig als numerisch und der zweite als Datum eingegeben wird.

%Vor%

Wenn ich nun versuche, das erste Element eines jeden Vektors wie im ersten Schritt der Schleife zuzuweisen:

%Vor%

Wie Sie sehen, ist der typisierte Vektor gut erstellt. Was passiert, Wenn Sie einen Vektor durch einen Skalarwert zuweisen, versuchen Sie R intern, ihn in den Typ des Vektors zu konvertieren . Um zu Ihrem Beispiel zurückzukehren, wenn Sie dies tun:

Sie erstellen einen numerischen Vektor (vv) und versuchen, ihm Daten zuzuordnen:

%Vor%

Wenn Sie Ihr Datum3 eingeben, zum Beispiel:

%Vor%

dann versuchst du es erneut

%Vor%

Sie erhalten ein gutes Ergebnis:

%Vor%     
agstudy 01.07.2013, 15:20
quelle

Tags und Links