Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. library(RColorBrewer)
  2. library(ggplot2)
  3. library(reshape2)
  4. library(grid)
  5. library(gridExtra)
  6.  
  7. # simply function for getting badrate ----------------------
  8. getBadRate <- function(xVar, yVar){
  9. tapply(yVar, xVar, sum) / tapply(yVar, xVar, length)
  10. }
  11.  
  12. # ploting all things I'm talking about ---------------------
  13. doVarStab <- function(yVar, xVar, year, name=NA, dir=getwd()){
  14. yearUniq <- sort(unique(year))
  15. xVarUniq <- sort(unique(xVar))
  16. if(length(xVarUniq) > 9) {stop("zbyt wiele do dpzoailu")}
  17. mBadRate <- matrix(0, nrow = length(xVarUniq), ncol = length(yearUniq))
  18. w <- 1
  19. for (i in yearUniq){
  20. idx <- which(year==i)
  21. mBadRate[w : (w + length(xVarUniq) - 1)] <- getBadRate(xVar = xVar[idx], yVar = yVar[idx])
  22. w <- w + length(xVarUniq)
  23. }
  24.  
  25.  
  26. #line plots for badrate
  27. mBadRate <- melt(mBadRate)
  28. colnames(mBadRate) <- c("variable", "year", "badrate")
  29. mBadRate[, 2] <- as.factor(mBadRate[, 2])
  30.  
  31. p1 <- ggplot(mBadRate, aes(variable, badrate, group = year, colour = year)) +
  32. geom_line(size=1) +
  33. geom_point(size=3, shape=1) +
  34. scale_colour_brewer(palette = "Set1") +
  35. theme_minimal()
  36.  
  37. #barplots for structure of variable
  38. dt <- data.frame(xVar, year)
  39. p2 <- ggplot(dt, aes(year, fill=xVar)) +
  40. geom_bar( position="fill") +
  41. scale_fill_brewer(palette = "Set1") +
  42. theme_minimal()
  43.  
  44. #save graphs
  45.  
  46. grid.arrange(p2, p1, ncol = 2, top=name)
  47.  
  48. }
  49.  
  50.  
  51. # example -----------------------------------
  52. dt <- data.frame(def=rep(c(TRUE,FALSE),each=50),
  53. b=c(rep(c("a","b"),each=30), rep("c",40)),
  54. c=sample(c("xx","yy","zz"),100,replace=T),
  55. rok=sample(2012:2015,100,replace=T))
  56. dt
  57. doVarStab(yVar=dt$def, xVar=dt$b, year=dt$rok, name="trololo")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement