Wie konvertiert man ein Zeichen in eine data.table für bestimmte Spalten?

8

Der folgende Datensatz hat die Eigenschaften meines großen Datensatzes. Ich verwalte es in data.table, einige Spalten werden als chr geladen, obwohl sie Zahlen sind, und ich will sie in Zahlen umwandeln, und diese Spaltennamen sind bekannt

%Vor%

Ich bin in der Lage, diese 2 Spalten mit dem obigen Code zu numerisch zu konvertieren, aber ich möchte stattdessen dt aktualisieren. Ich habe versucht mit: = aber es hat nicht funktioniert. Ich brauche Hilfe hier!

%Vor%

Ich habe sogar den folgenden Code ausprobiert (codiert wie ein data.frame - nicht meine ideale Lösung, auch wenn es funktioniert, da ich mir in einigen Fällen Sorgen mache, dass sich die Reihenfolge ändern könnte), aber es funktioniert immer noch nicht. Kann mir jemand sagen, warum es nicht funktioniert?

%Vor%

Vielen Dank im Voraus!

    
Lafayette 07.04.2015, 15:26
quelle

2 Antworten

7

Während Rolands Antwort eher idiomatisch ist, können Sie auch set innerhalb einer Schleife für etwas so Direktes wie dieses betrachten. Ein Ansatz könnte etwa so aussehen:

%Vor%

Auf der Hilfeseite von ?set würde dies einen Teil des zusätzlichen Aufwands [.data.table vermeiden, falls dies für Sie ein Problem werden sollte.

    
A5C1D2H2I1M1N2O1R2T1 07.04.2015, 16:06
quelle
25
  1. Sie müssen nicht die gesamte data.table zuweisen, wenn Sie per Referenz mit := zuweisen (d. h. Sie benötigen nicht dt.out2 <- ).

  2. Sie müssen die LHS von := in Klammern einschließen, um sicherzustellen, dass sie ausgewertet wird (und nicht als Name verwendet wird).

So:

%Vor%     
Roland 07.04.2015 15:39
quelle

Tags und Links