library(learnr)
knitr::opts_chunk$set(echo = TRUE)
tutorial_options(exercise.eval = FALSE)



d <- data.frame(candidatos=1:1000,n1=sample(0:10,1000,replace=TRUE),
              n2= sample(0:10,1000,replace=TRUE))

Data Frames

Se tivermos um objeto do tipo matriz, podemos converte-lo em data.frame.

(notas <- matrix(sample(7:10,25,replace=TRUE),5,5))

notas.df <- as.data.frame(notas)

is.data.frame(notas)
is.data.frame(notas.df)

Utilize a função names para dar nomes às colunas do data.frame notas.df.

notas <- matrix(sample(7:10,25,replace=TRUE),5,5)
notas.df <- as.data.frame(notas)
names(notas.df) <- c("Teste1","Teste2","Prova1","Teste3","Prova2")
notas.df

Listas

Vamos criar uma lista com variáveis sexo e idade.

moradores <- list(sexo=sample(c("F","M"),50,T),idade=sample(2:70,50,T))

Verifique a lista:

str(moradores)
mode(moradores)

Podemos extrair algumas estatísticas básicas e uma tabela de frequências:

summary(moradores$idade)
table(moradores$sexo)

Depois de criada uma lista, podemos adicionar novos elementos.

moradores$trabalha <- sample(c(T,F),50,T)
moradores$presente <- sample(c(1,0),50,T)
str(moradores)

Também podemos excluir elementos da lista

moradores$idade<-NULL
str(moradores)

Alguns comandos interessantes da lista:

#tamanho da lista (quantos elementos tem)
length(moradores)
#tamanho de um elemento da lista
length(moradores$trabalha)
#nomes dos elementos
names(moradores)

tapply() e lapply()

Usando a função tapply podemos calcular a média dos elementos da lista. Calcule a diade mpedia por sexo:

tapply(moradores$idade, moradores$sexo,  mean)

Usando a função sapply (ou lapply) podemos calcular a média da idade, utilizando a função which para selecionar o elemento da lista:

lapply(moradores[which(names(moradores)=="idade")], mean)

Exercícios

Exercício 1

Considere o data frame definido por:

d <- data.frame(candidatos=1:1000,n1=sample(0:10,1000,replace=TRUE),
              n2= sample(0:10,1000,replace=TRUE))
  1. Descreva o data.frame utilizando o comando str().

str(d)
  1. Crie um novo campo correspondente à média de n1 e n2.

(2 + 2)/2
d$m.n1.n2<-(d$n1+d$n2)/2
  1. Determine a nota média dos candidatos em relação à nota n1 e à nota n2.

mean()
mean(d$n1)
mean(d$n2)
  1. Liste o número de candidatos que tiveram a média (calculada no 1) menor do que cinco. (você precisará repetir a resposta na 1)

print()
print(d$candidatos[which(d$m.n1.n2<5)])
  1. Imprima o total de candidatos que tiveram a média maior ou igual a sete.(você precisará repetir a resposta na 1)

length()
length(d$candidatos[which(d$m.n1.n2>7)])

Exercício 2.

Crie uma lista que contenha: seu nome todo, sexo, idade, seus três filmes preferidos e uma lista com as datas de nascimento dos seus parentes mais próximos incluindo seus nomes.


list()
lista <- list("Alinne de Carvalho Veiga", "Feminino", "43" , c("Notin Hill", "Novica Rebelde", "Sociedade dos Poetas Mortos"),
               list(c("Paula", "Mãe", "Sobrimha"), c("28/04", "11/6", "4/11")))
lista

Exercício 3.

Construa uma lista que tenha uma matriz 2 x 2 e um vetor de 10 componentes (valores a sua escolha).


list()
lista <- list(matriz=diag(2),vetor=sample(c(1:10)))
lista

Exercício 4.

Seja L uma lista definida por: L<-list(a1=seq(2,20,2),a2=1:10,a3=sample(20,10)) Construa uma matriz M cujas colunas sejam formadas pelos elementos desta lista.


unlist()
matrix()
L <- list(a1=seq(2,20,2),a2=1:10,a3=sample(20,10))
(m<-matrix(unlist(L),10,3))


AlinneVeiga/EstComp1_2021_1 documentation built on May 13, 2021, 8:45 a.m.