library(learnr) knitr::opts_chunk$set(echo = TRUE) tutorial_options(exercise.eval = FALSE)
Vamos começar com o tipo mais básico de estrutura de dados que o $R$ comporta como objeto: o vetor.
O comando geral utilizado para criação de vetores é c(elementos do vetor separados por vírgulas)
- mas essa não é a única maneira. Podemos também criar vetores usando o comando :
z <- 0:9; z c (3 ,7 ,2 ,12) c("Luiz","Camila","Rafael") 10:30 30:10
Explique: o que é feito nas próximas linhas de comandos? Modifique para entender.
vet.b <- seq(-1,1, len=20) no.intervalo<- ((-0.5 <= vet.b) & (vet.b <=0.5)) sum(no.intervalo) length(vet.b) vet.d <- round(abs(vet.b),2) vet.e <- unique(vet.d) length(vet.e) vet.b>vet.e
question("`vet.b` e `vet.e` têm o mesmo tamanho?", answer("Sim."), answer("Não.", correct = TRUE))
question_text("O que você imagina que o R faz na comparação acima?", answer(NULL, correct = TRUE), allow_retry = FALSE, try_again_button = "Refazer resposta", incorrect = "Ok" )
Crie um vetor com texto com o seu nome (eu coloquei o meu):
nome <- "Alinne" is.vector(nome) is.numeric(nome) #Claro que não é! is.character(nome)
Compare e explique:
vec.A <- 1:10 #Qual a diferença entre os seguintes comandos? matrix(vec.A, 2,5) matrix(vec.A, 2,5, byrow = T)
question_text("Explique", answer(NULL, correct = TRUE), allow_retry = FALSE, try_again_button = "Refazer resposta", incorrect = "Ok" )
Veja o que acontece quando usamos essa mesma função para uma matriz já existente...
matriz.x<-matrix( 1:10, 2,5) diag(matriz.x)
Observe os seguintes casos - verifique as dimensões.
Caso 1: insira o comando a%*%b
e verifique o resultado.
(a <- matrix(1,nrow=2,ncol=2)) (b <- matrix(3,nrow=3,ncol=3))
Caso 2 insira o comando a%*%b
e verifique o resultado.
(a <- matrix(1,nrow=2,ncol=3)) (b <- matrix(3,nrow=3,ncol=2))
*O que acontece com os casos 1 e 2? O que você pode fazer para resolver? *
apply()
Vamos ver como a função apply
funciona. Responda: qual o máximo de cada linha e qual o máximo de cada coluna. Qual a soma de cada coluna e de cada linha?
(m<-matrix(sample(20,16),4,4)) apply(m,1,max) apply(m,2,max) apply(m,1,sum) rowSums(m) apply(m,2,sum) colSums(m)
Extraia a raiz quadrada de todos os elementos do vetor vet.b
. O que acontece? Eleve todos os elementos do vet.c
ao quadrado. Forneça os códigos e comentários.
vet.b <- seq(-1,1, len=20) (vet.4 <- sqrt(vet.b)) vet.c<- 20:1 (vet.c)^2
A partir do vetor criado vet.b
, crie uma matriz 4x4
.
(mat.2<-matrix(vet.b, ncol=4, nrow=4))
Utilizando o comando rbind()
, crie uma matriz 2x3
onde a primeira linha tem números de 1 a 3 e a segunda linha com números de 10 a 12.
l1 <- 1:3 l2 <- 10:12 mat.3 <-rbind(l1,l2) mat.3
Utilizando o comando cbind
, crie uma matriz 3x2
onde a primeira coluna tem números de 1 a 3 e a segunda coluna com números de 10 a 12.
c1 <- 1:3 c2 <- 10:12 mat.4 <- cbind(c1,c2) mat.4
Crie um vetor com o nome de 5 amigos e um outro vetor com suas idades. Aplique, ao vetor com as idades, os nomes dos seus amigos.
(idade <- c(43,46,45,42,38)) (nomes <- c("Ale", "Duda", "Leo", "Paula", "Vanessa")) names(idade)<- nomes idade
Utilize os comandos do $R$ para gerar um vetor contendo todos os inteiros de 1 até 100; depois crie vetores deste criado com elementos que não são múltiplos de 2; de 3; e de 7. São quatro vetores. Utilize o conhecimento adiquirido no lab anterior também. Apresente os comandos.
(vetor<-1:100) (vet2 <- which(vetor%%2!=0)) (vet3 <- which(vetor%%3!=0)) (vet7 <- which(vetor%%7!=0))
which(vetor%%7!=0)
Considere o comando "a<-sample(1000,100)
". Escreva um comando que retorne o número de elementos de a
que não são múltiplos de 4.
a<-sample(1000,100) length(which(a%%4!=0))
Escreva comandos para construir as matrizes abaixo. Crie as mesmas matrizes de duas formas diferentes, cada uma:
A <- matrix(1,3,3) B <- diag(-1,3) (matrizfinal <- A+B) #A
matrix(2^(1:9),3,3,byrow=TRUE) #B
A <- matrix(1,3,3) B <- diag(-1,3) (matrizfinal <- A+B) #A matrix(2^(1:9),3,3,byrow=TRUE) #B
matrix()
Considerando o vetor P<-1:100
, calcule a média de P
e calcule a média de todos os elementos pares de P
. Em seguida, calcule a média destas duas médias. Forneça os códigos.
mean()
which(P%%2==0)
P<-1:100 P.par<-which(P%%2==0) mean(P.par) mean(c(mean(P),mean(P.par)))
Considere o vetor V <- sample(20,40,replace=TRUE)
. Forneça os códigos que determine a soma e o produtório dos elementos de V
excluindo os elementos repetidos de V
.
sum()
prod()
unique()
V<-sample(20,40,replace=TRUE) sum(unique(V)) prod(unique(V))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.