Ich versuche, in eine csv-Datei zu lesen, die Informationen über politische Beiträge enthält. Soweit ich weiß, werden die Spalten standardmäßig als Faktoren importiert, aber ich muss die Spalte "Betrag" ('CTRIB_AMT' im Dataset) als numerische Spalte importieren, damit ich eine Vielzahl von Funktionen ausführen kann, die nicht funktionieren würden Faktoren. Die Spalte ist als Währung mit einem "$" als Präfix formatiert.
Ich habe einen einfachen Lesebefehl verwendet, um die Datei zu Beginn zu importieren:
%Vor%Und dann versucht, das CTRIB_AMT von der Währung zu numerisch zu konvertieren:
%Vor%Aber das hat nicht funktioniert. Die Funktionen, die ich für die Spalten CTRIB_AMT verwenden möchte, sind:
%Vor%Siehe verwandte Frage hier .
Irgendwelche Gedanken darüber, wie man die Datei anfänglich importiert, also ist die Spalte numerisch oder wie wird sie nach dem Import konvertiert?
Ich bin mir nicht sicher, wie ich es direkt einlesen kann, aber Sie können es ändern, sobald es in ist:
%Vor%Ich denke, es könnte nur eine fehlende Flucht in Ihrem Sub sein. $ gibt das Ende einer Zeile in regulären Ausdrücken an. \ $ ist ein Dollarzeichen. Aber dann musst du der Flucht entkommen ...
Ein anderer Weg könnte die Konvertierung mit setAs
sein.
Es wurde in zwei (ähnlichen) Fragen verwendet:
Für Ihre Bedürfnisse:
%Vor% Oder verwenden Sie etwas wie as.numeric(substr(as.character(contribs$CTRIB_AMT),2,20))
wir wissen, dass es nicht mehr als 20 Zeichen geben wird.
Eine weitere Sache, die Sie beachten sollten, ist, dass Sie die Notwendigkeit, von einem Faktor insgesamt zu konvertieren, entfernen müssen, wenn Sie stringsAsFactors=F
in Ihrem Aufruf auf read.csv()
Tags und Links r