La coerción de un objeto de un tipo de clase a otro se conoce como coerción explícita . Se logra a través de algunas funciones que son similares a las funciones base. Pero se diferencian de las funciones básicas en que no son genéricas y, por lo tanto, no llaman a los métodos de clase S3 para la conversión.
Diferencia entre conversión, coerción y yeso:
Normalmente, todo lo que se convierte implícitamente se denomina coerción y, si se convierte explícitamente, se conoce como conversión. La conversión significa ambos tipos: coerción y lanzamiento.
Coacción explícita al carácter
Hay dos funciones para hacerlo as.character() y as.string() .
Si v es un vector que se necesita convertir en carácter, entonces se puede convertir como:
- como.carácter(v, codificación = NULL)
- as.string(v, codificación = NULL)
Aquí, el parámetro de codificación informa al compilador R sobre la codificación del vector y ayuda internamente en la gestión de vectores de caracteres y strings.
Python3
# Creating a list x<-c(0, 1, 0, 3) # Converting it to character type as.character(x)
Producción:
[1] "0" "1" "0" "3"
Coerción explícita a números y lógicos.
Todos son como funciones * con un solo parámetro, es decir, un vector que se va a convertir.
.Diferencia-tabla { borde-colapso: colapsar; ancho: 100%; } .Tabla de diferencias td { color-texto: negro !importante; borde: 1px sólido #5fb962; alineación de texto: izquierda! importante; relleno: 8px; } .Diferencia-tabla th { borde: 1px sólido #5fb962; relleno: 8px; } .Tabla de diferencias tr>th{ color de fondo: #c6ebd9; alineación vertical: medio; } .Difference-table tr:nth-child(odd) { background-color: #ffffff; }
Función | Descripción |
---|---|
como.lógico |
Convierte el valor a tipo lógico.
|
como entero | Convierte el objeto a tipo entero |
como.doble | Convierte el objeto a tipo de precisión doble |
como.complejo | Convierte el objeto a tipo complejo |
como.lista | Acepta solo tipo de diccionario o vector como argumentos de entrada en el parámetro |
Python3
# Creating a list x<-c(0, 1, 0, 3) # Checking its class class(x) # Converting it to integer type as.numeric(x) # Converting it to double type as.double(x) # Converting it to logical type as.logical(x) # Converting it to a list as.list(x) # Converting it to complex numbers as.complex(x)
Producción:
[1] "numeric" [1] 0 1 0 3 [1] 0 1 0 3 [1] FALSE TRUE FALSE TRUE [[1]] [1] 0 [[2]] [1] 1 [[3]] [1] 0 [[4]] [1] 3 [1] 0+0i 1+0i 0+0i 3+0i
Produciendo NA
Las AN se producen durante la coerción explícita si R no puede decidir la forma de coaccionar algún objeto.
Python3
# Creating a list x<-c("q", "w", "c") as.numeric(x) as.logical(x)
Producción:
[1] NA NA NA Warning message: NAs introduced by coercion [1] NA NA NA