Konvertieren Sie Faktor in Numerisch mit der as.numeric-Funktion in R
-
Verwenden Sie die Funktion
as.numeric
, um Faktor in Numerisch in R . umzuwandeln -
Kombinieren Sie die Funktionen
as.character
undas.numeric
, um den Faktor in Numerisch in R . umzuwandeln
In diesem Artikel werden mehrere Methoden zum Konvertieren von Faktor in Zahlen in R demonstriert.
Verwenden Sie die Funktion as.numeric
, um Faktor in Numerisch in R . umzuwandeln
Die as
-Funktionen werden im Allgemeinen verwendet, um Datentypen explizit in einen anderen Typ umzuwandeln. Der Konvertierungsprozess wird in der R-Terminologie als Zwang bezeichnet und bezeichnet das in anderen Programmiersprachen vorhandene Konzept des Castings. Wenn wir die Funktion as.logical
aufrufen, versucht sie, das übergebene Argument in den logischen Typ zu zwingen. Ebenso konvertieren as.character
und as.numeric
die angegebenen Argumente in die entsprechenden Typen. Beachten Sie, dass jede in den logischen Typ konvertierte Zahl (außer Null) einen Wert TRUE
darstellt, auch negative.
> as.logical(31)
[1] TRUE
> as.logical(-31)
[1] TRUE
> as.character(31)
[1] "31"
> as.numeric(FALSE)
[1] 0
> as.numeric(TRUE)
[1] 1
R implementiert auch implizite Typ-Coercion-Regeln, die benötigt werden, wenn arithmetische Operationen an Vektoren durchgeführt werden, die aus verschiedenen Typen bestehen. Wenn ein atomarer Vektor eine Zeichenkette enthält, wird, wie im folgenden Codeausschnitt gezeigt, jedes andere Element ebenfalls in die Zeichenkette konvertiert. Wenn der Vektor gemischte Elemente aus Logik, Zahlen und Zeichenketten enthält, werden sie zu Zeichenkettentypen gezwungen. Wenn der Vektor schließlich Zahlen und Logik enthält, werden letztere in Zahlen umgewandelt.
> v1 <- c(1, "two", 3, 4, 5, 6)
> typeof(v1)
[1] "character"
> v1 <- c(T, "two", 3, 1, F, T)
> typeof(v1)
[1] "character"
> v1 <- c(1, T, 3, F, 5, 6)
> typeof(v1)
[1] "double"
Bei der Umrechnung eines Faktors in numerisch ist zu beachten, dass as.numeric
nur die zugrunde liegende Integer-Darstellung zurückliefert, die meist bedeutungslos ist und nicht den Faktorstufen entspricht. Mit der Funktion unclass
kann untersucht werden, wie ein Faktorobjekt intern gespeichert wird. Beachten Sie, dass der Faktor f2
einen Index von 2 1 2 3
hat, der im Allgemeinen mit dem Aufruf as.number
zurückgegeben wird, wie im nächsten Codebeispiel gezeigt:
> f2 <- factor(c(3, 2, 3, 4))
> f2
[1] 3 2 3 4
Levels: 2 3 4
> f2.n <- as.numeric(f2)
> unclass(f2)
[1] 2 1 2 3
attr(,"levels")
[1] "2" "3" "4"
> f2.n
[1] 2 1 2 3
Kombinieren Sie die Funktionen as.character
und as.numeric
, um den Faktor in Numerisch in R . umzuwandeln
Die Faktorstufen können durch Kombination der Funktionen as.character
und as.numeric
in den Integer-Typ umgewandelt werden. as.character
gibt Faktorstufen als Zeichenketten zurück. Dann können wir die Funktion as.numeric
aufrufen, um Zeichenketten in Zahlen umzuwandeln.
> f2 <- factor(c(3, 2, 3, 4))
> f2.c <- as.character(f2)
> f2.c
[1] "3" "2" "3" "4"
> f2.c <- as.numeric(as.character(f2))
> f2.c
[1] 3 2 3 4
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook