Converti fattore in numerico con la funzione as.numeric in R
-
Usa la funzione
as.numeric
per convertire il fattore in numerico in R -
Combina le funzioni
as.character
eas.numeric
per convertire il fattore in numerico in R
Questo articolo dimostrerà più metodi su come convertire il fattore in numerico in R.
Usa la funzione as.numeric
per convertire il fattore in numerico in R
Le funzioni as
vengono generalmente utilizzate per convertire esplicitamente il tipo di dati in un altro tipo. Il processo di conversione è chiamato coercizione nella terminologia R e denota il concetto di casting presente in altri linguaggi di programmazione. Quando chiamiamo la funzione as.logical
, cerca di forzare l’argomento passato al tipo logico. Allo stesso modo, as.character
e as.numeric
convertono gli argomenti dati nei tipi corrispondenti. Si noti che qualsiasi numero (eccetto zero) convertito nel tipo logico rappresenta un valore TRUE
, anche negativo.
> 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 implementa anche regole di coercizione di tipo implicite, necessarie quando vengono eseguite operazioni aritmetiche sui vettori costituiti da tipi diversi. Come dimostrato nel seguente frammento di codice, se un vettore atomico contiene una stringa di caratteri, anche ogni altro elemento viene convertito nella stringa. Se il vettore include elementi misti di logica, numeri e stringhe, vengono forzati ai tipi di stringa. Infine, quando il vettore contiene numeri e logica, questi ultimi vengono convertiti in numeri.
> 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"
Quando si converte un fattore in numerico, è importante notare che as.numeric
restituirà solo la rappresentazione intera sottostante, che è per lo più priva di significato e non corrisponde ai livelli dei fattori. Si può esaminare come un oggetto fattore viene memorizzato internamente utilizzando la funzione unclass
. Si noti che il fattore f2
ha un indice di 2 1 2 3
, che viene generalmente restituito utilizzando la chiamata as.number
come mostrato nel prossimo esempio di codice:
> 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
Combina le funzioni as.character
e as.numeric
per convertire il fattore in numerico in R
I livelli dei fattori possono essere convertiti nel tipo intero combinando le funzioni as.character
e as.numeric
. as.character
restituisce i livelli dei fattori come stringhe di caratteri. Quindi possiamo chiamare la funzione as.numeric
per forzare la stringa in numeri.
> 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