Tipos de datos en R
R dispone de una gran variedad de tipos de datos, como escalares, vectores (numéricos, de caracteres, lógicos), matrices, marcos de datos y listas.
Vectores
a <- c(1,2,5.3,6,-2,4) # numeric vector
b <- c("one","two","three") # character vector
c <- c(TRUE,TRUE,TRUE,FALSE,TRUE,FALSE) #logical vector
Refiérete a los elementos de un vector utilizando subíndices.
a[c(2,4)] # 2nd and 4th elements of vector
Matrices
Todas las columnas de una matriz deben tener el mismo modo (numérico, carácter, etc.) y la misma longitud. El formato general es
mimatriz <- matriz(vector, nrow= r, ncol= c, byrow= FALSE, dimnames=list( char_vector_rownames, char_vector_colnames))
byrow=TRUE indica que la matriz debe rellenarse por filas. byrow=FALSE indica que la matriz debe rellenarse por columnas (por defecto). dimnames proporciona etiquetas opcionales para las columnas y las filas.
# generates 5 x 4 numeric matrix
y<-matrix(1:20, nrow=5,ncol=4)
# another example
cells <- c(1,26,24,68)
rnames <- c("R1", "R2")
cnames <- c("C1", "C2")
mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE,
dimnames=list(rnames, cnames))
Identifica filas, columnas o elementos mediante subíndices.
x[,4] # 4th column of matrix
x[3,] # 3rd row of matrix
x[2:4,1:3] # rows 2,3,4 of columns 1,2,3
Matrices
Las matrices son similares a las matrices, pero pueden tener más de dos dimensiones. Consulta help(array ) para más detalles.
Marcos de datos
Un marco de datos es más general que una matriz, en el sentido de que las distintas columnas pueden tener modos diferentes (numérico, carácter, factor, etc.). Esto es similar a los conjuntos de datos de SAS y SPSS.
d <- c(1,2,3,4)
e <- c("red", "white", "red", NA)
f <- c(TRUE,TRUE,TRUE,FALSE)
mydata <- data.frame(d,e,f)
names(mydata) <- c("ID","Color","Passed") # variable names
Hay varias formas de identificar los elementos de un marco de datos .
myframe[3:5] # columns 3,4,5 of data frame
myframe[c("ID","Age")] # columns ID and Age from data frame
myframe$X1 # variable x1 in the data frame
Listas
Una colección ordenada de objetos (componentes). Una lista te permite reunir una variedad de objetos (posiblemente no relacionados) bajo un mismo nombre.
# example of a list with 4 components -
# a string, a numeric vector, a matrix, and a scaler
w <- list(name="Fred", mynumbers=a, mymatrix=y, age=5.3)
# example of a list containing two lists
v <- c(list1,list2)
Identifica los elementos de una lista utilizando la convención [[]].
mylist[[2]] # 2nd component of the list
mylist[["mynumbers"]] # component named mynumbers in list
Factores
Indica a R que una variable es nominal convirtiéndola en un factor. El factor almacena los valores nominales como un vector de enteros en el intervalo [1... k] (donde k es el número de valores únicos de la variable nominal), y un vector interno de cadenas de caracteres (los valores originales) asignados a esos enteros.
# variable gender with 20 "male" entries and
# 30 "female" entries
gender <- c(rep("male",20), rep("female", 30))
gender <- factor(gender)
# stores gender as 20 1s and 30 2s and associates
# 1=female, 2=male internally (alphabetically)
# R now treats gender as a nominal variable
summary(gender)
Se utiliza un factor ordenado para representar una variable ordinal.
# variable rating coded as "large", "medium", "small'
rating <- ordered(rating)
# recodes rating to 1,2,3 and associates
# 1=large, 2=medium, 3=small internally
# R now treats rating as ordinal
R tratará los factores como variables nominales y los factores ordenados como variables ordinales en los procedimientos estadísticos y los análisis gráficos. Puedes utilizar opciones en las funciones factor( ) y ordenada( ) para controlar la asignación de enteros a cadenas (anulando el orden alfabético). También puedes utilizar factores para crear etiquetas de valor.
Funciones útiles
length(object) # number of elements or components
str(object) # structure of an object
class(object) # class or type of an object
names(object) # names
c(object,object,...) # combine objects into a vector
cbind(object, object, ...) # combine objects as columns
rbind(object, object, ...) # combine objects as rows
object # prints the object
ls() # list current objects
rm(object) # delete an object
newobject <- edit(object) # edit copy and save as newobject
fix(object) # edit in place
Practicar
Para explorar los tipos de datos en R, prueba este curso interactivo gratuito de introducción a R