Konvertieren Sie Faktor in Numerisch mit der as.numeric-Funktion in R

Jinku Hu 30 Januar 2023
  1. Verwenden Sie die Funktion as.numeric, um Faktor in Numerisch in R . umzuwandeln
  2. Kombinieren Sie die Funktionen as.character und as.numeric, um den Faktor in Numerisch in R . umzuwandeln
Konvertieren Sie Faktor in Numerisch mit der as.numeric-Funktion in R

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
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Verwandter Artikel - R Factor