2.3 Tipos de datos
En R existen 6 tipos de datos básicos:
- Lógico (
logical
). Solamente tiene dos valoresTRUE
oFALSE
y el tipo lógico especialNA
para representar explícitamente valores faltantes o valores omitidos. - Entero (
integer
) - Numérico (
numeric
) - Caracteres (
character
) - Números complejos (
complex
) - Valores en bytes (`raw``)
No necesario especificar de forma explícita el tipo de datos de un objeto ya que R lo puede identificar automáticamente. Para conocer la clase a la que pertenece un objeto,
se utiliza la función class()
<- 88.66
num class(num)
# [1] "numeric"
<- 80
ent class(ent)
# [1] "numeric"
<- 80L
ent class(ent)
# [1] "integer"
También podemos preguntar si un objeto es de alguna clase determinada
is.character(num)
# [1] FALSE
is.numeric(num)
# [1] TRUE"
Y convertir objetos de una clase a otra
as.numeric(TRUE)
# [1] "TRUE"
as.character(num)
# [1] "88.66"
Existen funciones que solamente pueden ser llamadas o ejecutadas con algún tipo específico de datos, ya que solo están definidas para ellos.
round(55.2)
# [1] 55
round("abc")
## Error in round("abc"): non-numeric argument to mathematical function
2.3.1 Operadores lógicos
Los operadores lógicos son muy importantes para la programación y tienen el mismo funcionamiento en todos los lenguajes de programación. Los resultados de utilizar los principales operandos: AND
(&
), OR
(|
) y NOT
(!
) pueden ilustrarse
en una tabla de verdad
A | B | A|B | A&B | !A |
---|---|---|---|---|
FALSE | FALSE | FALSE | FALSE | TRUE |
FALSE | TRUE | TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE | FALSE | FALSE |
TRUE | TRUE | TRUE | TRUE | FALSE |
2.3.2 Cadenas de caracteres
Una función muy útil cuando trabajamos con cadenas de caracteres es strsplit()
, que nos separa texto dado algún caracter.
<- "uno;dos;tres;cuatro;cinco"
cadena strsplit(cadena, split = ";")
## [[1]]
## [1] "uno" "dos" "tres" "cuatro" "cinco"
Y para concatenar caracteres, números, variables, etc, utilizamos paste()
o paste0()
. La primera acepta un separador para concatenar y paste0
, simplemente concatena todo. Además, el argumento para el caracter separador depende de los elementos del primer argumento. Si son objetos por separado usamos sep
en paste
paste("concatena", "palabras", "con", "espacios", sep = " ")
## [1] "concatena palabras con espacios"
paste0("El valor guardado fue ", num, ". Sumando ", 5, " da ", num + 5)
## [1] "El valor guardado fue 88.66. Sumando 5 da 93.66"
Pero si los enviamos como un vector, usamos el argumento collapse
paste(1:20, collapse = " ")
## [1] "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20"
paste0(c("El valor guardado fue ", num, ". Sumando ", 5, " da ", num + 5), collapse = "")
## [1] "El valor guardado fue 88.66. Sumando 5 da 93.66"