Advertisement
Guest User

Untitled

a guest
May 16th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 5.38 KB | None | 0 0
  1. # Custom Data of PDCwR
  2.  
  3. ## Leitura dos dados custom data
  4.  
  5. custdata <- read.table("C://Mydata/custdata.tsv",header=T,sep="\t")
  6. ## custdata <- read.table(file.choose(),header=T,sep="\t")
  7.  
  8. ## Exame do conjunto de dados custdata
  9.  
  10. class(custdata)
  11. head(custdata)
  12. dim(custdata)
  13. str(custdata)
  14. View(custdata)
  15.  
  16. summary(custdata)
  17. summary(custdata$income)
  18. summary(custdata$age)
  19. summary(custdata$income)
  20. Income = custdata$income/1000
  21. summary(Income)
  22.  
  23. ## Histograma da idade dos consumidores
  24.  
  25. library(ggplot2)        
  26. ggplot(custdata) +
  27.   geom_histogram(aes(x=age),
  28.                  binwidth=5, fill="gray")
  29.  
  30. ## Density plot da renda dos consumidores
  31.  
  32. library(scales)  #exibe notação em dólares
  33.  
  34. ggplot(custdata) + geom_density(aes(x=income)) +
  35.   scale_x_continuous(labels=dollar)
  36.  
  37. ggplot(custdata) + geom_density(aes(x=income)) +
  38.   scale_x_log10(breaks=c(100,1000,10000,100000), labels=dollar) +  
  39.   annotation_logticks(sides="bt")  
  40.  
  41. ## Gráfico de barras para o status civil
  42.  
  43. ggplot(custdata) +
  44.   geom_bar(aes(x=marital.stat), fill="gray")
  45.  
  46. ## Gráfico de barras para o estado de residência
  47.  
  48. ggplot(custdata) +
  49.   geom_bar(aes(x=state.of.res), fill="gray") +     
  50.   coord_flip() +    
  51.   theme(axis.text.y=element_text(size=rel(0.8)))  
  52.  
  53. statesums <- table(custdata$state.of.res)
  54. statesums
  55. statef <- as.data.frame(statesums)  
  56. head(statef)
  57. colnames(statef)<-c("state.of.res", "count")
  58. head(statef)
  59. summary(statef)  
  60.  
  61. statef <- transform(statef,
  62.                     state.of.res=reorder(state.of.res, count))  
  63. summary(statef)                          
  64. ggplot(statef)+
  65.   geom_bar(aes(x=state.of.res,y=count),
  66.                          stat="identity",                
  67.                          fill="gray") +
  68.   coord_flip() +                                        
  69.   theme(axis.text.y=element_text(size=rel(0.8)))
  70.  
  71. ## Exemplo de plotagem da curva de uma função quadrática
  72.  
  73. x <- seq(0,1,by=0.01)  
  74. y <- 0.2*x + x^2  
  75. ggplot(data.frame(x=x,y=y), aes(x=x,y=y)) +
  76.   geom_line()
  77.  
  78. ## Exame da relação entre idade e renda
  79.  
  80. custdata2 <- subset(custdata,
  81.                     (custdata$age > 0 & custdata$age < 100
  82.                      & custdata$income > 0))        
  83.  
  84. cor(custdata2$age, custdata2$income)
  85.  
  86. ggplot(custdata2, aes(x=age, y=income)) +
  87.   geom_point() + ylim(0, 200000)
  88.  
  89. ggplot(custdata2, aes(x=age, y=income)) +
  90.   geom_point() +
  91.   stat_smooth(method="lm") +
  92.   ylim(0, 200000)
  93.  
  94. ggplot(custdata2, aes(x=age, y=income)) +
  95.   geom_point() + geom_smooth() +
  96.   ylim(0, 200000)
  97.  
  98. ## Pessoas possuidoras de planos de saúde
  99.  
  100. ggplot(custdata2, aes(x=age, y=as.numeric(health.ins))) +  
  101.   geom_point(position=position_jitter(w=0.05, h=0.05)) +  
  102.   geom_smooth()    
  103.  
  104. # Nota 1:
  105. #   A variável categória health.ins dever ser convertida a uma variável
  106. #   numérica 0 ou 1 usando-se a função as.numeric()
  107.  
  108. # Nota 2:
  109. #   Desde que y só toma valores 0 ou 1, precisamos provocar uma pequena
  110. #   dispersão (jitter) dos dados para podermos ter uma noção de densidade
  111.  
  112. # Nota 3:
  113. #   Finalmente adicionamos uma curva suavisadora (LOESS)
  114.  
  115. ## Produção de um plot hexbin da idade com a renda
  116.  
  117. library(hexbin)
  118.  
  119. ggplot(custdata2, aes(x=age, y=income)) +
  120.   geom_hex(binwidth=c(5, 10000)) +  
  121.   geom_smooth(color="white", se=F) +  
  122.   ylim(0,200000)
  123.  
  124. # Nota 1:
  125. #   Carregue o pacote {hexbin}
  126.  
  127. # Nota 2:
  128. #   Crie um hexbin com a idade variando em incrementos de 5 anos
  129. #   e a renda em incrementos de $10,000
  130.  
  131. # Nota 3:
  132. #   Adicione uma curva suavizadora em branco
  133. #   e suprima a faixa de erro padrão fazendo se=F
  134.  
  135. ## Criando diferentes estilos de gráficos de barra
  136.  
  137. ggplot(custdata) + geom_bar(aes(x=marital.stat,
  138.                                 fill=health.ins))
  139.  
  140. ggplot(custdata) + geom_bar(aes(x=marital.stat,
  141.                                 fill=health.ins),
  142.                             position="dodge")      
  143.  
  144. ggplot(custdata) + geom_bar(aes(x=marital.stat,
  145.                                 fill=health.ins),
  146.                                 position="fill")        
  147.  
  148. # Nota 1:
  149. #   A primeira é default, que são barras empilhadas (stacked bar chart)
  150.  
  151. # Nota 2:
  152. #   A segunda é opcional, barras lado a lado (side-by-side bar chart)
  153.  
  154. # Nota 3:
  155. #   A terceira é opcional, barras cheias (filled bar chart)
  156. #   Esta última é boa para comparação das razões internas a cada nível
  157.  
  158. # Plotagem do gráfico de barras com um tapete (rug)
  159.  
  160. ggplot(custdata, aes(x=marital.stat)) +
  161.   geom_bar(aes(fill=health.ins), position="fill") +
  162.   geom_point(aes(y=-0.05), size=0.75, alpha=0.3,
  163.              position=position_jitter(h=0.01))
  164.  
  165. # Nota 1:
  166. #   Coloque os pontos logo abaixo de y=0, e faça-os ligeiramente
  167. #   transparentes com o parâmetro gráfico alpha
  168.  
  169. # Nota 2:
  170. #   Espalhe os pontos ligeiramente com a função jitter ()
  171. #   para melhorar a legibilidade
  172.  
  173. ## Plotagem do gráfico de barras sem e com facetas (painéis)
  174.  
  175. ggplot(custdata2) +                                              
  176.   geom_bar(aes(x=housing.type, fill=marital.stat ),
  177.            position="dodge") +
  178.   theme(axis.text.x = element_text(angle = 45, hjust = 1))      
  179.  
  180. ggplot(custdata2) +                                              
  181.   geom_bar(aes(x=marital.stat), position="dodge",
  182.            fill="darkgray") +
  183.   facet_wrap(~housing.type, scales="free_y") +                  
  184.   theme(axis.text.x = element_text(angle = 45, hjust = 1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement