Ich habe eine gemischte Klasse Datenrahmen (numerisch und Faktor), wo ich versuche, den gesamten Datenrahmen in numerische konvertieren. Im Folgenden wird die Art der Daten, ich arbeite mit als auch das Problem, das ich bin der Begegnung:Wie konvertiert man das gesamte Datenfeld in einen numerischen Wert, während Dezimalzahlen beibehalten werden?
> a = as.factor(c(0.01,0.02,0.03,0.04))
> b = c(2,4,5,7)
> df1 = data.frame(a,b)
> class(df1$a)
[1] "factor"
> class(df1$b)
[1] "numeric"
Wenn ich den gesamten Datenrahmen in numerische versuchen und konvertieren, es ändert sich die numerischen Werte. Zum Beispiel:
> df2 = as.data.frame(sapply(df1, as.numeric))
> class(df2$a)
[1] "numeric"
> df2
a b
1 1 2
2 2 4
3 3 5
4 4 7
Vorherige Beiträge auf dieser Website vorschlagen as.numeric(as.character(df1$a))
verwenden, die für eine Spalte funktioniert gut. Ich muss diesen Ansatz jedoch auf einen Datenrahmen anwenden, der Hunderte von Spalten enthalten kann.
Was sind meine Optionen für die Konvertierung eines ganzen Datenrahmens von Faktor zu numerisch, während die numerischen Dezimalwerte beibehalten werden?
Im Folgenden ist der Ausgang I produzieren möchte, wo a
und b
sind numerisch:
a b
1 0.01 2
2 0.02 4
3 0.03 5
4 0.04 7
ich die folgenden verwandten Beiträge gelesen haben, obwohl keiner von ihnen direkt auf diesen Fall anzuwenden:
- How to convert a factor variable to numeric while preserving the numbers in R Dies verweist auf eine einzelne Spalte in einem Datenrahmen.
- converting from a character to a numeric data frame. Dieser Beitrag berücksichtigt keine Dezimalwerte.
- How can i convert a factor column that contains decimal numbers to numeric?. Dies gilt nur für eine Spalte in einem Datenrahmen.
Gute Möglichkeit, eine Frage zu stellen. [Diese Frage] (http://stackoverflow.com/questions/23206700/sum-on-a-factor-column-returns-incorrect-result) kann hilfreich sein. Dies ist eine häufige Quelle der Frustration mit Faktorvariablen. – ilir