1) Carregue um conjunto de dados simples. Realize manipulação simples nos dados (por exemplo, ordenação, filtragem, criação de novas variáveis, etc.).

#===============================================================================
#
# Escreva uma função chamada 'prisoes' que calcula a soma das prisões em estados
# americanos do dataset USArrests. 
# 
# A função 'prisoes' recebe dois argumentos: 'estados' e 'tiposPrisoes'. 
#
# Dado esses argumentos, a função retorna o total de prisões. 
#
# Se não existir nem o estado ou o tipo de prisão, então uma mensagem de erro deve ser retornada. 
#
# O protótipo dessa função é: prisoes <- function(estados, tiposPrisoes){}. 
# 
# As seguintes mensagens precisam ser apresentadas caso o estado ou 
# o tipo de prisão estejam inválidos: "Estado Inválido"  ou "Tipo de Prisão Inválida". 
# 
# De posse dessa função, responda as questões abaixo.
#
#
#===============================================================================
dt <- data.frame(USArrests)
View(dt)
estados <- c("Alabama", "Alaska")
tiposPrisoes <- c("Murder","UrbanPop")
tiposPrisoes <- c("123")
tiposPrisoes[which(tiposPrisoes!="UrbanPop")]
## [1] "123"
names(USArrests)
## [1] "Murder"   "Assault"  "UrbanPop" "Rape"
sum(dt[estados,tiposPrisoes[which(tiposPrisoes!="UrbanPop")]])
## [1] 0
prisoes <- function(estados, tiposPrisoes){
  dt <- data.frame(USArrests)
  if(length(estados)==0){
    return("Estado Inválido")
  }
  namesEstados <- c(rownames(dt))
  for(i in 1:length(estados)){
    if(length(which(namesEstados==estados[i]))==0){
      return(message="Estado Inválido")
      break
    } 
  }
  if(length(tiposPrisoes)==0 | length(which(tiposPrisoes!="UrbanPop"))==0){
    return(message="Tipo de Prisão Inválida")
  }
  
  #Removi o UrbanPop
  #tiposPrisoes <- tiposPrisoes[which(tiposPrisoes!="UrbanPop")]
  namesTiposPrisoes <- names(dt)
  for(i in 1:length(tiposPrisoes)){
    if(length(which(namesTiposPrisoes==tiposPrisoes[i]))==0){ #Se os TiposPrisoes restantes constarem nos names do dt
      return(message="Tipo de Prisão Inválida")
    } 
  }
  return(sum(dt[estados,tiposPrisoes]))
}

prisoes(estados,c("123"))
## [1] "Tipo de Prisão Inválida"
#===============================================================================
#Exemplos

prisoes(estados = "Oregon", tiposPrisoes = c("Rape","Murder"))
## [1] 34.2
prisoes(estados = c("Nevada","Washington"), tiposPrisoes = c("UrbanPop","Assault"))
## [1] 551
prisoes(estados = c("Pernambuco"), tiposPrisoes = c("Rape","Murder"))
## [1] "Estado Inválido"
#Qual é o total de prisões do código a seguir? 
  prisoes(estados="Tennessee", tiposPrisoes=c("Rape","Murder"))
## [1] 40.1
#Qual é o total de prisões do código a seguir? 
  prisoes(estados=c("California ","Miami", "Arizona"), tiposPrisoes=("Assault"))
## [1] "Estado Inválido"
#Qual é o total de prisões do código a seguir?
prisoes(estados=c("Pennsylvania","Mississippi", "Nebraska"), tiposPrisoes=c("Rape","UrbanPop","Assault"))
## [1] 693.5
#Qual é o total de prisões do código a seguir? 
prisoes(estados=c("Vermont","Wisconsin", "Texas"), tiposPrisoes=c("Rape","Assalto"))
## [1] "Tipo de Prisão Inválida"

2) Utilize o pacote DT para criar uma tabela interativa, proporcionando funcionalidades como ordenação, busca e paginação.

library(DT)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data<- data.frame(starwars)

datatable(data)
datatable(
  data,
  style = "bootstrap",
  caption = "Interactive DT table",
  options = list(
    pageLength = 5
  )
)

3) Escreva e apresente cinco equações complexas utilizando a sintaxe do LaTeX. Forneça o significado para cada equação.

Equação Quadrática:

\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]

Distribuição Binomial:

\[ P(X=k) = {n \choose k} p^k (1-p)^{n-k} \]

Distibuição Normal: \[ f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{ -\frac{(x-\mu)^2}{2\sigma^2} } \]

Regressão Linear:

\[ Y = X\beta + \epsilon \] Teorema de Bayes:

\[ P(A|B) = \frac{P(B|A)P(A)}{P(B)} \]

4) Adicione duas figuras relacionadas à ciência de dados.

library(knitr)
include_graphics("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTaaTGmELWv-oWw9EPwmVD6ebwcaGfrWAevUzDfsoA1ng&s")

library(knitr)
include_graphics("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTnV5WuvTYmXnrpB4TxZTlwn4lI0E86IycwSzI_51fOBA&s")

5) Pesquise e inclua cinco referências bibliográficas.

(ARAúJO, GONçALVES, and BENEVENUTO, n.d.) (Lucca et al. 2013) (Leong, Lee, and Mak 2012) (Jayalakshmi and Sheshasaayee 2015) (Pavan et al. 1997)

ARAúJO, M, P GONçALVES, and F BENEVENUTO. n.d. “Métodos Para análise de Sentimentos No Twitter. 2013.” Citado Na, 59.
Jayalakshmi, S, and Ananthi Sheshasaayee. 2015. “Question Classification: A Review of State-of-the-Art Algorithms and Approaches.” Indian Journal of Science and Technology 8 (29).
Leong, Chee Kian, Yew Haur Lee, and Wai Keong Mak. 2012. “Mining Sentiments in SMS Texts for Teaching Evaluation.” Expert Systems with Applications 39 (3): 2584–89.
Lucca, Giancarlo, Igor A Pereira, André Prisco, and Eduardo N Borges. 2013. “Uma Implementação Do Algoritmo Naı̈ve Bayes Para Classificação de Texto.”
Pavan, Paolo, Roberto Bez, Piero Olivo, and Enrico Zanoni. 1997. “Flash Memory Cells-an Overview.” Proceedings of the IEEE 85 (8): 1248–71.