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.
(a). \(a1 = x+y+z, a2 = yz, a3 = \frac{z}{y}\)
## [1] "a1 = 31 | a2 = -32 | a3 = -32"
(b). \(b1 = z^2, b2 = z^3, b3 = z^x\)
## [1] "b1 = 1024 | b2 = 32768 | b3 = 1"
(c). \(c1 = \sqrt{a1}, c2 = \sqrt{x}, c3 = \sqrt{\frac{b2}{a1}}\)
## [1] "c1 = 5.56776436283002 | c2 = 0 | c3 = 32.5120325120488"
(d). \(d1 = \sqrt[3]{a2}, d2 = \sqrt[4]{-\frac{1}{a3}}, d3 = \sqrt[3]{z^2}\)
d1 = -abs(a2)^(1/3); d2 = (1/-a3)^(1/4); d3 = (z^2)^(1/3)
paste('d1 =', d1,' | ','d2 =', d2,' | ','d3 =', d3)## [1] "d1 = -3.1748021039364 | d2 = 0.420448207626857 | d3 = 10.079368399159"
(e). \(e1 = |x|, e2 = \sqrt{|a2|}, e3 = |\frac{1}{z}|\)
## [1] "e1 = 0 | e2 = 5.65685424949238 | e3 = 0.03125"
(f). \(f1 = e^x, f2 = e^{x+y+z}, f3 = e^{a3}\)
## [1] "f1 = 1 | f2 = 29048849665247.4 | f3 = 1.26641655490942e-14"
(g). \(g1 = ln(x), g2 = ln(x+y+z), g3 = ln(yz)\)
## [1] "g1 = -Inf | g2 = 3.43398720448515 | g3 = NaN"
(h). \(h1 = \sqrt{π}, h2 = \sqrt{e^{-x^2}}, h3 = \sqrt{3ln({\frac{4}{a3})}}\)
h1 = sqrt(pi); h2 = sqrt(exp((-x^2))); h3 = sqrt(3* log(4/a3) )
paste('h1 =', h1,' | ','h2 =', h2,' | ','h3 =', h3)## [1] "h1 = 1.77245385090552 | h2 = 1 | h3 = NaN"
Obs1: Veja que o objeto pi, pré-definido no R, guarda o valor (aproximado) para \(π\).
Obs2: Como podemos encontrar um valor aproximado pelo R para o número irracional \(e\)?
## [1] 2.72
Defina ch1="a", ch2="b" e ch3="c", objetos do tipo "character".
(a). 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".
## [1] "a.b.c"
(b). 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".
## [1] "abc"
(c). Usando o comando == verifique se ch4 e ch5 são iguais ou diferentes.
## [1] FALSE
(d). Usando o comando != verifique se ch4 e ch5 são iguais ou diferentes.
## [1] TRUE
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.
(a). Qual a resposta para 18%%5, -5%%2, 15%%5 e 8.3%%3?
## [1] 3
## [1] 1
## [1] 0
## [1] 2.3
(b). 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.
## [1] FALSE
## [1] TRUE
(c). 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.
## [1] TRUE
(d). 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.
## [1] TRUE
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.
(a). Crie um array x onde cada posição de x é dada pela subtração entre as respectivas posições de b e d.
## [1] -19 -15 -11 -7 -3 1 5 9 13 17
(b). Crie um array y onde cada posição de y é o dobro de cada posição de a.
## [1] 2 4 6 8 10 12 14 16 18 20
.c). 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.
## [1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
(d). 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.
## [1] TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
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. (a). Primeiro digite letters e LETTERS para ver como são exatamente esses objetos.
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
## [20] "t" "u" "v" "w" "x" "y" "z"
## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z"
(b). 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.
## [1] "character"
## [1] "character"
(c). 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.
## [1] 26
## [1] 26
(d). 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.
## [1] "character"
## [1] 52
## [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S"
## [20] "T" "U" "V" "W" "X" "Y" "Z" "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l"
## [39] "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z"
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.## [1] "character"
## [1] 26
## [1] "A a" "B b" "C c" "D d" "E e" "F f" "G g" "H h" "I i" "J j" "K k" "L l"
## [13] "M m" "N n" "O o" "P p" "Q q" "R r" "S s" "T t" "U u" "V v" "W w" "X x"
## [25] "Y y" "Z z"
Crie as seguintes matrizes no R:
(a).
## [,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
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.
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
## [1] "Total de Coluna: 3 e Total de Linhas: 4"
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]]
## [1] "Agda Costa"
##
## [[2]]
## [1] 21
##
## [[3]]
## [1] 1.68 65.00
##
## [[4]]
## [1] TRUE FALSE FALSE
(a). A partir do objeto minha_lista criado acesse o seu nome.
## [[1]]
## [1] "Agda Costa"
(b). A partir do objeto minha_lista criado acesse a sua idade.
## [1] 21
(c). A partir do objeto minha_lista criado acesse a sua altura.
## [1] 1.68
(d). A partir do objeto minha_lista criado acesse o seu peso.
## [1] 65
(e). A partir do objeto minha_lista criado acesse a resposta para a pergunta: “Você tem interesse em assuntos relacionados ao meio ambiente?”.
## [1] FALSE
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.
minha_lista2 = list('Yago Oliveira', 25, c(1.72,82), c(T,T,F) )
dados_alunos = list(minha_lista,minha_lista2)(a). A partir do objeto dados_alunos criado acesse o seu nome.
## [1] "Agda Costa"
(b). A partir do objeto dados_alunos criado o nome do seu amigo.
## [1] "Yago Oliveira"
(c). A partir do objeto dados_alunos criado acesse a sua altura.
## [1] 1.68
(d). A partir do objeto dados_alunos criado acesse a resposta do seu amigo para a pergunta “Você já estagiou?”
## [1] TRUE
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]]
## [1] 1
##
## [[2]]
## [1] 2
##
## [[3]]
## [1] 3
## [[1]]
## [1] 1 2 3
## [1] 1 2 3
Resposta: Obj1 é uma lista de 3 numeros, o obj2 é um lista com um array de 3 numeros e obj3 é um array
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.
(a). Y e Z
## [1] TRUE
(b). A e B
## [1] FALSE
Resposta: Porque A recebe o character X que é diferente de B porque B é o número atribuido a X, que é 3, ou seja, “x” != 3
(c). X e B
## [1] TRUE
(d). A e C
## [1] FALSE
Resposta: Porque A recebe o character X que é diferente de C porque C é o character A, ou seja, “x” != “a”
(e). D, E e F
## [1] FALSE FALSE
## [1] TRUE TRUE
## [1] FALSE FALSE
Resposta: Porque D é um character e E é um array com dois character e a variavel f é uma lista com dois character