MAC113 - Introdução à Computação

Administração - 1o. Semestre de 2020



Aula 07: Vetores em R



  1. O assunto do dia:

  2. Os tipos (atomicos) em R:

  3. construção de vetor:

  4. Os elementos de vetor tem índice:

  5. O vetor tem tamanho:

  6. O tipo de vetor = o tipo de seus elementos:

  7. O elemento inválido:

  8. print(paste0("Vou comprar ", x[1]) => a saida: "Vou comprar kiwi",p>
  9. 	x <- c("kiwi", "maçã", "uva", "pera", "banana")
            i <- 3
            print(x[i])  => a saida: "uva"
            print(x[i-1], x[i], x[i+1] )  => a saida: "maçã"  "uva"  "pera"
           

  10. Outra construção:
    	x <- 1:5
            print(x)  => a saida: 1  2  3  4  5
    	y <- 9:3
            print(y)  => a saida: 9  8  7  6  5  4  3
            print(length(y))  => a saida: 7
           

  11. exemplo de vetor unitário:
    	w <- 8
            print(w[1])  => a saida: 8
            print(length(w))  => a saida: 1
            print(w== c(8))  => a saida: TRUE 
         

  12. Manipulações vetoriais:
    	a <- c(1, 2, 3, 4, 5)
    	b <- c(1, -2, 3, -4, 5)
            print(a + b)  => a saida: 2  0  6  0  10
            print(a - b)  => a saida: 0  4  0  8  0
            print(a * b)  => a saida: 1  -4  9  -16  25
            print(a == b)  =>
    	    a saida: TRUE  FALSE TRUE  FALSE  TRUE
                aqui elemento por elemento
           print(identical(a, b))  =>
    	    a saida: FALSE
                aqui vetor por vetor
          

  13. continuando:
    	a <- c(1, 2, 3, 4, 5)
            print(3 + a)  => a saida: 4  5  6  7  8
            print(5 * a - b)  => a saida: 5  10  15  20  25
            x  <- 6 * a
            print(x)  => a saida: 6  12  18  24  30
            y  <- x[5:1]
            print(y)  => a saida: 30  24  18  12  6
    

  14. Uma função que recebe 1 vetor de números e devolve o maoir elemento:
    	maioDoVetorWhile1 <- function(vet){
             max <- vet[1] 
             i <- 2 
             while(i <= length(vet)){
                if(vet[i] > max){
                  max <- vet[i
                } 
                i <- i + 1
             }
             return(max)
           }	
    

  15. Outra versão com o uso de Inf:
    	maioDoVetorWhile2 <- function(vet){
             max <- -Inf 
             i <- 1 
             while(i <= length(vet)){
                if(vet[i] > max){
                  max <- vet[i]
                } 
                i <- i + 1
             }
             return(max)
           }	
    

  16. Usar for no lugar de while:
    	maioDoVetorFor1 <- function(vet){
             tam <- length(vet) 
             max <- -Inf
             for(i in(1:tam)){
                if(vet[i] > max){
                  max <- vet[i]
                }
             }
             return(max)
           }	
    

  17. laços com for:

  18. Outra versão com for:
    	maioDoVetorFor2 <- function(vet){
             max <- -Inf
             for(elemento in vet){
                if(elemento > max){
                  max <- elemento
                }
             }
             return(max)
           }	
    

  19. Palíndromo:

  20. Outra versão com for:
    	ehPalindromo1 <- function(vet){
             tam <- length(vet)
             invertido <- vet[tam:1]
             return(identical(vet, invertido)
           }	
    

  21. versão1:
    	ehPalindromo1 <- function(vet){
              tam <- length(vet)
              for(i in(1:tam){
                if(vet[i] != vet[tam - i + 1] ){
                  return(FALSE)
               } 
               return(TRUE)
    	 }	
    

  22. versão 2 (com vetor auxiliar):
    	ehPalindromo2 <- function(vet){
             tam <- length(vet)
             invertido <- vet[tam:1]
             return(identical(vet, invertido)
           }