Exercícios

  1. Defina primeiro os objetos x, y e z como sendo do tipo "numeric" que guardam os valores 0, -1 e 32, respectivamente. Para cada item a seguir defina os novos objetos apresentados a partir de comandos e funções do R. Ao final verifique se os objetos criados guardam o valor que você esperava. Alguns dos resultados podem dar erro, tente justificar o motivo.
    1. \(a_1 = x + y + z\), \(a_2 = yz\), \(a_3 = \dfrac{z}{y}\)
    2. \(b_1 = z^2\), \(b_2 = z^3\), \(b_3 = z^x\)
    3. \(c_1 = \sqrt{a_1}\), \(c_2 = \sqrt{x}\), \(c_3 = \sqrt{\dfrac{b_2}{a_1}}\)
    4. \(d_1 = \sqrt[3]{a_2}\), \(d_2 = \sqrt[4]{-\dfrac{1}{a_3}}\), \(d_3 = \sqrt[3]{z^2}\)
    5. \(e_1 = |x|\), \(e_2 = \sqrt{|a_2|}\), \(e_3 = \left|\dfrac{1}{z}\right|\)
    6. \(f_1 = e^x\), \(f_2 = e^{x + y + z}\), \(f_3 = e^{a_3}\)
    7. \(g_1 = \ln(x)\), \(g_2 = \ln(x + y + z)\), \(g_3 = \ln(yz)\)
    8. \(h_1 = \sqrt{\pi}\), \(h_2 = \sqrt{e^{-x^2}}\), \(h_3 = \sqrt{3\ln\left(\dfrac{4}{a_3}\right)}\)

Obs1: Veja que o objeto pi, pré-definido no R, guarda o valor (aproximado) para \(\pi\).

Obs2: Como podemos encontrar um valor aproximado pelo R para o número irracional \(e\)?

  1. Defina ch1="a", ch2="b" e ch3="c", objetos do tipo "character".
    1. Usando a função paste() a partir de ch1, ch2 e ch3 crie um quarto objeto, também da classe "character", ch4, definido como "a.b.c".
    2. Usando a função paste() a partir de ch1, ch2 e ch3 crie um quinto objeto, também da classe "character", ch5, definido como "abc".
    3. Usando o comando == verifique se ch4 e ch5 são iguais ou diferentes.
  1. Usando o comando != verifique se ch4 e ch5 são iguais ou diferentes.
  1. O operador %% fornece o resto da divisão entre dois números, por exemplo, 15%%4 retorna o resto da divisão de 15 por 4, que é 3. Esse comando será bastante usado durante o curso. Faça os itens a seguir primeiros no papel e depois verifique a resposta usando o R.
    1. Qual a resposta para 18%%5, -5%%2, 15%%5 e 8.3%%3?
    2. Seja a um objeto do tipo "numeric", que não sabemos o valor guardado nele. Sem ver o valor de a, como podemos usar o operador %% para testar se a guarda um número par? Faça o teste no prompt do R e use também os operadores == ou != de forma que a resposta seja TRUE se o número for par e FALSE caso contrários.
    3. Novamente sem ver o valor de a, como podemos usar o operador %% para testar se a guarda um número inteiro? Faça o teste no prompt do R e use também os operadores == ou != de forma que a resposta seja TRUE se o número for inteiro e FALSE caso contrários.
    4. Novamente sem ver o valor de a, como podemos testar se a guarda um número natural, isto é, inteiro e positivo? Faça o teste no prompt do R de forma que a resposta seja TRUE se o número for natural e FALSE caso contrários.
  2. Digite no prompt do R: a<-seq(1:10); b<-seq(1,20,by=2); d<-seq(20,1,by=-2). Usando os operadores +,-,*,/ e também ==,!=,<,> faça o que se pede nos itens a seguir.
    1. Crie um array x onde cada posição de x é dada pela subtração entre as respectivas posições de b e d.
    2. Crie um array y onde cada posição de y é o dobro de cada posição de a.
    3. Crie um array z onde cada posição de z é um objeto da classe "logical". A i-ésima posição de z vai guardar TRUE se a[i] for igual a b[i] e FALSE caso contrário.
    4. Crie um array w onde cada posição de w é um objeto da classe "logical". A i-ésima posição de w vai guardar TRUE se d[i] for maior que b[i] e FALSE caso contrário.
  3. No R já exitem alguns objetos pré-definidos que são chamados de constantes. Como exemplo temos a constante pi, já usada no Exercício 1. Tem também os arrays letters e LETTERS, formados pelas letras minúsculas e maiúsculas do alfabeto, que serão usados neste exercício.
    1. Primeiro digite letters e LETTERS para ver como são exatamente esses objetos.
    2. Qual a classe dos objetos letters e LETTERS? Primeiro tente responder sem usar a função class() e depois verifique a sua resposta usando-a.
    3. Qual a função que podemos usar para encontrar o tamanho dos arrays letters e LETTERS? Use essa função e descubra o tamanho deles.
    4. Se digitarmos a<-c(LETTERS,letters), qual a classe do objeto a, qual o seu tamanho e como é este objeto? Tente responder antes sem o uso do computador e depois use o R para verificar a sua resposta.
    5. Se digitarmos b<-paste(LETTERS,letters), qual a classe do objeto b, qual o seu tamanho e como é este objeto. Tente responder antes sem o uso do computador e depois use o R para verificar a sua resposta.
  4. Crie as seguintes matrizes no R:
##      [,1] [,2]
## [1,]    1  101
## [2,]    2  102
## [3,]    3  103
## [4,]    4  104
b. 
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]  101  102  103  104
c.
##      [,1] [,2] [,3]
## [1,]    1    1    1
## [2,]    1    1    1
## [3,]    1    1    1
  1. Digite no prompt do R o seguinte comando: A<-matrix(c(1,2,3,4,5,6,7,8,9,10,11,12),4,3). Qual as funções que podemos usar para encontrar o número de linhas e colunas da matriz A? Use tais funções e veja como elas funcionam.

  2. Crie um objeto do tipo "list" com 4 elementos e dê o nome de minha_lista. O primeiro elemento é o seu nome ("character"). O segundo é sua idade ("numeric"). O terceiro é um array que guarda suas medidas de altura e peso, nessa ordem, em metros ("numeric"). E o quarto elemento é outro array que guarda TRUE para as respostas afirmativas e FALSE para as respostas negativas ("logical") das seguintes perguntas: (i) Você já estagiou?; (ii) Você já participou de algum projeto como voluntário? (iii) Você tem interesse em assuntos relacionados ao meio ambiente?.

    1. A partir do objeto minha_lista criado acesse o seu nome.
    2. A partir do objeto minha_lista criado acesse a sua idade.
    3. A partir do objeto minha_lista criado acesse a sua altura.
    4. A partir do objeto minha_lista criado acesse o seu peso.
    5. A partir do objeto minha_lista criado acesse a resposta para a pergunta: “Você tem interesse em assuntos relacionados ao meio ambiente?”.
  3. Refaça o exercício anterior agora com os dados de um amigo ou dados fictícios. Chame essa nova lista de lista_2. Em seguida crie outra lista com 2 objetos, vamos chamá-la de dados_alunos. O primeiro objeto da lista dados_alunos é a lista criada no exercício anterior, a minha_lista, e o segundo objeto é a lista_2. Ou seja, dados_alunos é uma lista de listas.

    1. A partir do objeto dados_alunos criado acesse o seu nome.
    2. A partir do objeto dados_alunos criado o nome do seu amigo.
    3. A partir do objeto dados_alunos criado acesse a sua altura.
    4. A partir do objeto dados_alunos criado acesse a resposta do seu amigo para a pergunta “Você já estagiou?”
  4. Qual a diferença entre os objeto obj1, obj2 e obj3 definidos a seguir?

obj1 <- list(1,2,3); obj2 <- list(c(1,2,3)); obj3 <- c(1,2,3)
  1. Faça esse exercício sem o computador e depois use o computador para verificar a resposta. Imagine que sejam definidos no R os seguintes objetos: X<-3; Y<-2; Z<-"2"; A<-"X"; B<-X; C<-"A"; D<-paste(A,C); E<-c(A,C); f<-list(A,C). Para cada item abaixo diga se os objetos apresentados são iguais ou não. Caso eles sejam diferentes, explique a diferença entre eles.
    1. Y e Z
    2. A e B
    3. X e B
    4. A e C
    5. D, E e F