Bacharelado em Estatística - UFMT
Usando o software R, resolva as expressões numéricas:
Execute os comandos sqrt(16)
, 16^0.5
e
4^3
.
Execute os comandos log10(1000)
,
log(1000)
, exp(log (1000))
. Então, tente o
comando log2(64)
. Quais as diferenças entre as funções
executadas?
Experimente o comando ?log
. Leia as primeiras
linhas. O texto corresponde às suas observações do exercício
anterior?
Execute os comandos pi
, round(pi)
,
round(pi, digits = 4)
e trunc(pi)
.
As funções seno e cosseno são implementadas em sin
e
cos
. Calcule sin(pi)
, cos(pi)
,
sin(pi/2)
, cos(pi/2)
.
Execute os comandos a seguir e observe os resultados. Note que as operações são realizadas elemento a elementos.
x <- c(3,6,8)
x
x/2
x^2
sqrt(x)
x[2]
x[c(1,3)]
x[-3]
y <- c(2,5,1)
y
x-y
x*y
x[y > 1.5]
y[x == 6]
4:10
seq(2,3, by = 0.1)
rep(x, each = 4)
Suponha que registramos a altura e o peso para quatro pessoas: alturas em cm são 180, 165, 160, 193; pesos em kg são 87, 58, 65, 100. Faça dois vetores, altura e peso, com os dados. O índice de massa corporal (IMC) é definido como \[ \frac{peso \ (\text{em kg})}{altura^2 \ (\text{em m}) } \] Faça um vetor com os valores do IMC para as quatro pessoas, e um vetor com o logaritmo natural para os valores do IMC. Finalmente, faça um vetor com os pesos para essas pessoas que têm um IMC maior que 25.
Mostrar os comandos que podem ser usados para criar as sequências:
## [1] 1 2 3
## [1] 10 11 12 13 14 15 16 17 18 19 20
## [1] -3 -2 -1 0 1 2 3
## [1] -8 -7 -6 -5
## [1] 2.4 2.9 3.4 3.9 4.4 4.9 5.4 5.9 6.4 6.9 7.4
## [1] 0.0 1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8 9.9 11.0
## [1] 0 2 4 6 8 10 12 14 16 18 20
## [1] 1 3 5 7 9 11 13 15 17 19
## [1] 1 1 2 2 3 3 4 4 5 5
## [1] 1 2 3 4 5 1 2 3 4 5
## [1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
## [1] 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
## [1] 0.0 2.5 2.5 5.0 5.0 5.0 7.5 7.5 7.5 7.5 10.0 10.0 10.0 10.0 10.0
## [1] "a" "b" "c" "d" "e"
## [1] "c" "f" "i" "l"
## [1] "H" "G" "F" "E" "D" "C" "B"
## [1] "A" "C" "E" "G" "I" "K"
## [1] "T1" "T2" "T3" "T1" "T2" "T3" "T1" "T2" "T3"
## [1] "T1" "T1" "T2" "T2" "T3" "T3" "T3" "T3"
Suponha que você marcou 10 tempos que gasta para executar uma
tarefa. Os tempos em minutos foram: 18, 14, 14, 15, 14, 34, 16, 17, 21,
26. Armazene esses valores em um objeto com o nome tempo
.
Usando funções do R obtenha o tempo máximo, mínimo e o tempo
médio.
(continuando o exercício anterior) O valor 34 foi um erro, ele na
verdade é 15. Sem digitar tudo novamente, e usando colchetes
[]
, altere o valor e calcule novamente o tempo
médio.
Você consegue prever o resultado dos comandos abaixo? Caso não consiga, execute os comandos e veja o resultado:
x<-c(1,3,5,7,9)
y<-c(2,3,5,7,11,13)
x+1
y*2
length(x)
length(y)
x + y
y[3]
y[-3]
Calcule a velocidade média de um objeto que percorreu 150 km em 2.5 horas. Sugestão: lembre-se da fórmula do cálculo da velocidade média.
Calcule \(|2^3-3^2|\)
Suponha que você deseje jogar na mega-sena, mas não sabe quais números jogar, use a função sample do R para escolher seis números para você. Lembre que a mega-sena tem valores de 1 a 60.
Crie uma sequencia de dados de 1 a 30 apenas com números impares.
Use a função seq()
.
Utilizando apenas as funções c()
, seq()
e indexação de vetores []
, crie os seguintes objetos:
Abaixo estão listadas as distâncias por estradas entre quatro cidades da Europa, em quilômetros:
Crie um objeto da classe matrix denominado dist.cid com os valores acima. Nesta matriz, a diagonal principal deve conter zeros e o “triângulo” acima da diagonal principal deve conter as mesmas informações do “triângulo” abaixo da diagonal principal. Para facilitar o uso desse objeto, o nome das linhas e das colunas deve ser o nome das cidades. Você consegue pensar em duas formas diferentes de criar a matriz com nomes nas linhas e colunas? Sugestão: utilize as funções lower.tri,upper.tri e diag.
Faça um programa que receba quatro números, calcule e mostre a soma desses números.
Faça um programa que receba três notas, calcule e mostre a média aritmética.
Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada.
Faça um programa que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de \(25\%\).
Faça um programa que receba o salário de um funcionário e o percentual de aumento, calcule e mostre o valor do aumento e o novo salário.
Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a receber, sabendo-se que o funcionário tem gratificação de \(128\) reais sobre o salário base e paga os impostos de \(14\%\) e \(25/%\), referentes a previdência e de renda. Note que não há incidência de imposto na gratificação e a ordem de desconto dos impostos é primeiro o da previdência e posteriormente o de renda.
Faça um programa que receba o valor de um depósito, o valor da taxa de juros compostos e o tempo de aplicação. Calcule e mostre o valor do rendimento e o valor total depois do rendimento.
Faça um programa que calcule e mostre a área de um triângulo.
Faça um programa que calcule e mostre a área de um círculo.
Faça um programa que receba um número positivo e maior que zero, calcule e mostre:
Faça um programa que receba dois números e mostre o maior.
Darth Vader comprou um saco de ração com peso em quilos. Ele possui dois gatos, para os quais fornece a quantidade de ração em gramas. A quantidade diária de ração fornecida para cada gato é sempre a mesma. Faça um programa que receba o peso do saco de ração e a quantidade de ração fornecida para cada gato, calcule e mostre quanto restará no saco após cinco dias.
Cada degrau de uma escada tem \(x\) de altura. Faça um programa que receba essa altura e a altura que o usuário deseja alcançar subindo a escada, calcule e mostre quantos degraus ele deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário. Todas as medidas fornecidas devem estar em metros.
Faça um programa que receba um conjunto de valores e mostre o mínimo, mediana, máximo, média, amplitude, variância, desvio padrão e a quantidade de elementos do conjunto de dados.
Faça um programa que receba um número inteiro e verifique se é par ou ímpar.
Faça um programa para resolver equações do segundo grau ( \(ax^2 + bx + c = 0\) ).
35.Dados três valores \(x, y, z\), verifique se eles podem ser os comprimentos dos lados de um triângulo e, se forem, verifique se é um triângulo equilátero, isósceles ou escaleno. Considere que:
Sugestões:
bartlett.test()
(teste de Bartlett)
para homogeneidade de variâncias.Construa uma função que apresenta \(n\) termos da sequência de Fibonacci.
Considerando a função do exercício anterior, construa uma nova
função que apresenta o n-ésimo
termo da sequência de
Fibonacci.
Considerando a função que obtém uma estimativa do intervalo de confiança para a média de uma população normal de variância desconhecida:
IC.t <- function(x,alpha = 0.05){
n <- length(x)
IC <- c(mean(x) - qt(1 - alpha/2, n-1) * sd(x)/sqrt(n),
mean(x) + qt(1 - alpha/2, n-1) * sd(x)/sqrt(n))
return(IC = IC)
}
Construa uma função que obtém \(m\)
amostras aleatórias de tamanho \(n\) da
distribuição normal de média \(\mu\) e
desvio padrão \(\sigma\) (função
rnorm(n, mean, sd)
), obtém estimativas de intervalos de
confiança \(1 - \alpha\) para cada
amostra e, considerando o valor paramétrico \(\mu\), calcula a proporção de intervalos
que contém o valor do parâmetro \(\mu\).
Descrever a função apply()
(já implementada no R), e
apresentar exemplos de sua utilização e refaça o
exercício anterior usando a função apply
.
Construa uma função que calcula o traço de uma matriz \(\mathbf{A}\) de dimensões \(n \times n\), sendo o traço a soma dos elementos da diagonal principal, ou seja, \(tr(\mathbf{A}) = \sum_{i = 1}^n a_{ii}\). Acrescente um aviso se a matriz \(\mathbf{A}\) não for quadrada.
Desenvolva uma função em linguagem R que calcula a média
geométrica de um vetor \(\mathbf{x} =
(x_1,\cdots,x_n)\) e retorna uma mensagem de erro se algum
elemento de \(\mathbf{x}\) for negativo
ou nulo. A média geométrica de \(\mathbf{x} =
(x_1,\cdots,x_n)\) é calculada por \[
mg = \left(\prod_{i = 1}^n x_i \right)^{1/n}.
\] Sugestão: considere as funções
any()
e stop()
.
43 Desenvolva uma função em linguagem R que calcula a média harmônica
ponderada de um vetor \(\mathbf{x} =
(x_1,\cdots,x_n)\) com pesos \(\mathbf{w} = (w_1,\cdots,w_n)\) e retorna
uma mensagem de erro se algum elemento de \(\mathbf{x}\) ou \(\mathbf{w}\) for negativo ou nulo. A média
harmônica ponderada de \(\mathbf{x} =
(x_1,\cdots,x_n)\) com pesos \(\mathbf{w} = (w_1,\cdots,w_n)\) é calculada
por \[
mh = \frac{\sum_{i = 1}^n w_i}{\sum_{i = 1}^n \frac{w_i}{x_i} }.
\] Sugestão: considere as funções
any()
e stop()
.
Fonte: W. John Braun, Duncan J. Murdoch. (2008) A first course in statistical programming with R. Cambridge University Press.
Considerando a função em R a seguir, descreva detalhadamente sobre o que é a função e comente cada linha de instrução do código.
Eratostenes <- function(n) { # ?
if (n %% 1 != 0 | n < 2) stop("O valor de n deve ser inteiro e >= 2.") # ?
crivo <- seq(2, n) # ?
primos <- NULL # ?
for (i in seq(2, n)) { # ?
if (any(crivo == i)) { # ?
primos <- c(primos, i) # ?
crivo <- c(crivo[(crivo %% i) != 0], i) # ?
} # ?
} # ?
return(primos) # ?
} # ?
Eratostenes(0) # ?
Error in Eratostenes(0) : O valor de n deve ser inteiro e >= 2. # ?
Eratostenes(12) # ?
[1] 2 3 5 7 11 # ?