Tipos de dados no R
O R tem uma grande variedade de tipos de dados, incluindo escalares, vetores (numéricos, de caracteres, lógicos), matrizes, quadros de dados e listas.
Vetores
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
Refira-se aos elementos de um vetor usando subscritos.
a[c(2,4)] # 2nd and 4th elements of vector
Matrizes
Todas as colunas em uma matriz devem ter o mesmo modo (numérico, caractere etc.) e o mesmo comprimento. O formato geral é
mymatrix <- matrix(vector, nrow= r, ncol= c, byrow= FALSE, dimnames=list( char_vector_rownames, char_vector_colnames))
byrow=TRUE indica que a matriz deve ser preenchida por linhas. byrow=FALSE indica que a matriz deve ser preenchida por colunas (o padrão). dimnames fornece rótulos opcionais para as colunas e linhas.
# 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))
Identificar linhas, colunas ou elementos usando subscritos.
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
Matrizes
As matrizes são semelhantes às matrizes, mas podem ter mais de duas dimensões. Consulte help(array) para obter detalhes.
Quadros de dados
Um quadro de dados é mais geral do que uma matriz, pois colunas diferentes podem ter modos diferentes (numérico, caractere, fator, etc.). Isso é semelhante aos conjuntos de dados do SAS e do 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
Há várias maneiras de identificar os elementos de um quadro de dados.
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
Uma coleção ordenada de objetos (componentes). Uma lista permite que você reúna uma variedade de objetos (possivelmente não relacionados) sob um único nome.
# 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)
Identifique os elementos de uma lista usando a convenção [[]].
mylist[[2]] # 2nd component of the list
mylist[["mynumbers"]] # component named mynumbers in list
Fatores
Informe ao R que uma variável é nominal, tornando-a um fator. O fator armazena os valores nominais como um vetor de números inteiros no intervalo [1... k] (em que k é o número de valores exclusivos na variável nominal) e um vetor interno de cadeias de caracteres (os valores originais) mapeados para esses números inteiros.
# 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)
Um fator ordenado é usado para representar uma variável 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
O R tratará os fatores como variáveis nominais e os fatores ordenados como variáveis ordinais em procedimentos estatísticos e análises gráficas. Você pode usar opções nas funções factor( ) e ordered( ) para controlar o mapeamento de inteiros para cadeias de caracteres (substituindo a ordenação alfabética). Você também pode usar fatores para criar rótulos de valores.
Funções úteis
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
Para praticar
Para explorar os tipos de dados no R, experimente este curso interativo gratuito de introdução ao R