[[bot89:precurso:1lists:inicio]]

Listas

  • O resultado de muitas análises são objetos de classe list e você precisa entender o que isso significa.
  • Listas permitem organizar diferentes classes de objetos numa estrutura hierárquica organizada. Uma mesma lista pode incluir elementos que são vetores de qualquer classe, matrizes, data.frames, etc.
  • Listas são criadas pela função list():
  • Indexação de Listas é dado pelo operador [[indice_ou_nome]] ou $+nome (se os elementos da lista tem nome).
?list #veja o help
 
#um vetor simples
v1 = 1:10
class(v1)
#outro vetor simples
v2 = LETTERS
class(v2)
#uma matriz simples
mm = matrix(1:9,nrow=3,ncol=3)
class(mm)
#um data.frame
dd = iris
class(dd)
 
#criamos uma lista simples
ml = list(v1,v2,mm,dd)
class(ml) #deve ser lista
length(ml) #número de elementos
names(ml) #os elementos dessa lista não tem nome
str(ml) #veja a estrutura do objeto
ml[[1]] #o elemento 1 é o vetor
ml[[2]] #o segundo também
ml[[1:2]] #note que retorna apenas o segundo... nao funciona como vetor para pegar mais de um elemento, pois a estrutura é complexa
ml[[1]][3] #terceiro elemento do vetor que está no elemento 1 da lista
 
 
ml[[3]] #é uma matrix
ml[[3]][1,3] #valor da primeira linha e da terceira coluna da matrix que o objeto 2 da lista
 
ml[[4]] #é uma data.frame
ml[[4]][,1] #a primeira coluna deste data.frame
ml[[4]]$Sepal.Length #mesma coisa
 
#uma lista pode conter listas
mll = list(list(v1,v2),mm,dd) #o primeiro elemento virou uma lista com dois vetores
class(mll[[1]]) #é uma lista agora
mll[[1]][[1]] #a sublista 1 do elemento 1 da lista
mll[[1]][[2]] #a sublista 2 do elemento 1 da lista
 
#criamos uma lista com nomes
ml = list(VETOR1=v1,MATRIZ=mm,TABELA=dd)
class(ml)
str(ml)
names(ml) #nome dos elementos
ml[["VETOR1"]]
ml$VETOR1  #ou assim, da mesma forma que uma coluna de um data.frame
 
ml[['TABELA']][,"Sepal.Length"] #coluna do data.frame em TABELA
ml[['TABELA']]$Sepal.Length #idem
ml$TABELA$Sepal.Length #idem também

  • bot89/precurso/1lists/inicio.txt
  • Última modificação: 08/14/2020 14:14
  • por perdiz