Ich habe eine Textdatei mit numerischen Daten, mit Kopfzeilen, wobei einige Zahlen als Brüche eingegeben werden, einige als Ganzzahlen eingegeben werden und einige als Gleitkommazahlen eingegeben werden, z. B .:
%Vor%Wie kann ich diese Ausdrücke auswerten und als Zahlen speichern, wenn ich read.csv verwende?
Danke ...
Importieren Sie zuerst Ihre Daten als Vektor von Zeichenketten. Wenn Sie Ihr Spielzeugbeispiel in der Frage verwenden, können wir dies durch
tun %Vor% Sobald Sie Ihre Daten in einem Zeichenvektor gespeichert haben, können wir mit eval(parse())
die Ausdrücke so auswerten, als wären sie an der Konsole eingegeben worden. Leider ist eval
nicht vektorisiert, also wickeln wir es in sapply, um diese Funktion nacheinander auf jedes Element Ihrer Daten anzuwenden
Wir können dies erweitern, um mit mehrzeiligen Daten umzugehen, indem wir die obige Methode für jede Spalte gleichzeitig anwenden. Zum Beispiel, so
%Vor%Ich würde dringend empfehlen, fread () im Paket "data.table" zu verwenden. Es ist unglaublich schnell und sehr robust in fast allen Situationen.
%Vor%Wenn Ihre Werte immer noch nicht in dem Format sind, nach dem Sie suchen, können Sie "as.integer ()" oder "as.numeric ()" verwenden:
%Vor%Hoffe, das hilft!