Advertisement
lu4kedr

ukol1

Apr 15th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 7.32 KB | None | 0 0
  1. setwd("E:/OneDrive/Dokumenty/Skola/PS/ukol_workspace")
  2. # Instalování balíčků
  3. install.packages("readxl")
  4. install.packages("dplyr")
  5. install.packages("moments")
  6. # Lze provést přes okno Packages -> Install
  7.  
  8. # Načtení balíčku (nutno opakovat při každém novém spuštění Rka, vhodné mít na začátku skriptu)
  9. library(readxl)
  10. library(dplyr)
  11. library(openxlsx)
  12.  
  13.  
  14. data = read_excel("ukol_13.xlsx",
  15.                   sheet = "Vysledky mereni"      # specifikace listu v xlsx souboru
  16. )                 # řádky, které se přeskočí
  17.  
  18. # Přejmenování sloupců - je-li nutné
  19. colnames(data)=c("","A1AM","A1MM", "A1CHT","A2AM","A2MM", "A2CHT","A3AM","A3MM", "A3CHT","A4AM","A4MM", "A4CHT")
  20.  
  21. # nebo pomocí názvů
  22. dataA1AM = data %>%
  23.   select(A1AM)
  24.  
  25. dataA1AM_omited=na.omit(dataA1AM)
  26. dataA1AM_stack = stack(dataA1AM_omited)
  27.  
  28. dataA2AM = data %>%
  29.   select(A2AM)
  30.  
  31. dataA2AM_omited=na.omit(dataA2AM)
  32. dataA2AM_stack = stack(dataA2AM_omited)
  33.  
  34. minimumA1= min(dataA1AM_omited);
  35. maximumA1= max(dataA1AM_omited);
  36.  
  37. minimumA2= min(dataA2AM_omited);
  38. maximumA2= max(dataA2AM_omited);
  39.  
  40.  
  41. dolniKvartilA1 = quantile(dataA1AM_omited$A1AM, probs = 0.25)
  42. horniKvartilA1 = quantile(dataA1AM_omited$A1AM, probs = 0.75)
  43.  
  44. dolniKvartilA2 =quantile(dataA2AM_omited$A2AM, probs = 0.25)
  45. horniKvartilA2 = quantile(dataA2AM_omited$A2AM, probs = 0.75)
  46.  
  47. medianA1 = median(dataA1AM_omited$A1AM)
  48. medianA2 = median(dataA2AM_omited$A2AM)
  49.  
  50.  
  51. prumerA1 = mean(dataA1AM_omited$A1AM)
  52. prumerA2 = mean(dataA2AM_omited$A2AM)
  53.  
  54. smerodatnaOdchylkaA1 = sd(dataA1AM_omited$A1AM)
  55. smerodatnaOdchylkaA2 = sd(dataA2AM_omited$A2AM)
  56.  
  57. variacniKoefA1 =100*smerodatnaOdchylkaA1/prumerA1
  58. variacniKoefA2 =100*smerodatnaOdchylkaA2/prumerA2
  59.  
  60. sikmostA1 = moments::skewness(dataA1AM_omited$A1AM)
  61. sikmostA2 = moments::skewness(dataA2AM_omited$A2AM)
  62.  
  63. spicatostA1 = moments::kurtosis(dataA1AM_omited$A1AM)-3
  64. spicatostA2 = moments::kurtosis(dataA2AM_omited$A2AM)-3
  65.  
  66.  
  67. iqtA1 = horniKvartilA1 - dolniKvartilA1
  68. iqtA2 =horniKvartilA2 - dolniKvartilA2
  69.  
  70.  
  71. finaliqtA1= 1.5* iqtA1
  72. finaliqtA2= 1.5* iqtA2
  73.  
  74.  
  75. hradbaDOlniMezA1=dolniKvartilA1-finaliqtA1
  76. hradbaHorniMezA1=dolniKvartilA1+finaliqtA1
  77.  
  78. hradbaDOlniMezA2=dolniKvartilA2-finaliqtA2
  79. hradbaHorniMezA2=dolniKvartilA2+finaliqtA2
  80.  
  81.  
  82.  
  83. outliersA1 <- boxplot(dataA1AM_omited$A1AM, plot=TRUE)$out
  84. outliersA2 <- boxplot(dataA2AM_omited$A2AM, plot=TRUE)$out
  85.  
  86. multibox <-boxplot(
  87.   dataA1AM_omited$A1AM, dataA2AM_omited$A2AM,
  88.   plot=TRUE,
  89.   #main="Automaticky měřené velikosti zrn (nm)",
  90.   names=c("Typ A1","Typ A2"),
  91.   ylab="Velikost (nm)")
  92.  
  93. #kontrola zda jsou odlehle pozorovani v datech vyskytnuta
  94. #dataA1AM_omited[which(dataA1AM_omited$A1AM %in% outliers),]
  95.  
  96.  
  97. dataA1AM_omited_withoutOutliers <- dataA1AM_omited[-which(dataA1AM_omited$A1AM %in% outliersA1),]
  98. dataA2AM_omited_withoutOutliers <- dataA2AM_omited[-which(dataA2AM_omited$A2AM %in% outliersA2),]
  99.  
  100. ## po odstraneni odlehlych pozorovani
  101.  
  102. dataA1AM_omited<-dataA1AM_omited_withoutOutliers
  103. dataA2AM_omited<-dataA2AM_omited_withoutOutliers
  104.  
  105. minimumA1= min(dataA1AM_omited);
  106. maximumA1= max(dataA1AM_omited);
  107.  
  108. minimumA2= min(dataA2AM_omited);
  109. maximumA2= max(dataA2AM_omited);
  110.  
  111.  
  112. dolniKvartilA1 = quantile(dataA1AM_omited$A1AM, probs = 0.25)
  113. horniKvartilA1 = quantile(dataA1AM_omited$A1AM, probs = 0.75)
  114.  
  115. dolniKvartilA2 =quantile(dataA2AM_omited$A2AM, probs = 0.25)
  116. horniKvartilA2 = quantile(dataA2AM_omited$A2AM, probs = 0.75)
  117.  
  118. medianA1 = median(dataA1AM_omited$A1AM)
  119. medianA2 = median(dataA2AM_omited$A2AM)
  120.  
  121.  
  122. prumerA1 = mean(dataA1AM_omited$A1AM)
  123. prumerA2 = mean(dataA2AM_omited$A2AM)
  124.  
  125. smerodatnaOdchylkaA1 = sd(dataA1AM_omited$A1AM,na.rm=T)
  126. smerodatnaOdchylkaA2 = sd(dataA2AM_omited$A2AM,na.rm=T)
  127.  
  128. variacniKoefA1 =100*smerodatnaOdchylkaA1/prumerA1
  129. variacniKoefA2 =100*smerodatnaOdchylkaA2/prumerA2
  130.  
  131. sikmostA1 = moments::skewness(dataA1AM_omited$A1AM)
  132. sikmostA2 = moments::skewness(dataA2AM_omited$A2AM)
  133.  
  134. spicatostA1 = moments::kurtosis(dataA1AM_omited$A1AM)-3
  135. spicatostA2 = moments::kurtosis(dataA2AM_omited$A2AM)-3
  136.  
  137.  
  138. iqtA1 = horniKvartilA1 - dolniKvartilA1
  139. iqtA2 =horniKvartilA2 - dolniKvartilA2
  140.  
  141.  
  142. finaliqtA1= 1.5* iqtA1
  143. finaliqtA2= 1.5* iqtA2
  144.  
  145.  
  146. hradbaDOlniMezA1=dolniKvartilA1-finaliqtA1
  147. hradbaHorniMezA1=dolniKvartilA1+finaliqtA1
  148.  
  149. hradbaDOlniMezA2=dolniKvartilA2-finaliqtA2
  150. hradbaHorniMezA2=dolniKvartilA2+finaliqtA2
  151.  
  152.  
  153.  
  154.  
  155. multibox_withoutOutliners <-boxplot(
  156.   dataA1AM_omited_withoutOutliers$A1AM, dataA2AM_omited_withoutOutliers$A2AM,
  157.   plot=TRUE,
  158.   main="Automaticky měřené velikosti zrn (nm)",
  159.   names=c("Typ A1","Typ A2"),
  160.   ylab="Velikost (nm)")
  161.  
  162.  
  163. histogramA1 <- hist(dataA1AM_omited_withoutOutliers$A1AM,
  164.                     breaks=10,
  165.                     main="Histogram velikostí zrn typu A1",
  166.                     xlab="velikost (nm)",
  167.                     ylab="počet zrn",
  168.                     border="grey",
  169.                     xlim = c(15,17.5),
  170.                     ylim= c(0,15),
  171.                     labels = TRUE)  
  172. xfit=seq(minimumA1, maximumA1,length =62)     # generování hodnot pro osu x
  173. yfit=dnorm(xfit, mean=prumerA1, sd=smerodatnaOdchylkaA1)  # generování hodnot pro osu y
  174. lines(xfit, yfit, col="black")  
  175.  
  176. histogramA2 <- hist(dataA2AM_omited_withoutOutliers$A2AM,
  177.                     breaks=10,
  178.                     main="Histogram velikostí zrn typu A2",
  179.                     xlab="velikost (nm)",
  180.                     ylab="počet zrn",
  181.                     border="grey",    # barva ohraničení sloupců
  182.                     labels=TRUE,
  183.                     ylim= c(0,15),
  184.                     xlim = c(15,17.5))  
  185. xfit=seq(minimumA2, maximumA2,length =64)     # generování hodnot pro osu x
  186. yfit=dnorm(xfit, mean=prumerA2, sd=smerodatnaOdchylkaA2)  # generování hodnot pro osu y
  187. lines(xfit, yfit, col="black")  
  188.  
  189. qqnorm(dataA1AM_omited_withoutOutliers$A1AM,xlab="Teoretické kvantily",ylab="Výběrové kvantily")
  190. qqline(dataA1AM_omited_withoutOutliers$A1AM)
  191.  
  192. qqnorm(dataA2AM_omited_withoutOutliers$A2AM,xlab="Teoretické kvantily",ylab="Výběrové kvantily")
  193. qqline(dataA2AM_omited_withoutOutliers$A2AM)
  194.  
  195. #to be clever test   p-value >0.05 => normalita se NEZAMITA
  196. shapiro.test(dataA1AM_omited_withoutOutliers$A1AM)
  197. shapiro.test(dataA2AM_omited_withoutOutliers$A2AM)
  198.  
  199.  
  200. dat <- read.table(text = "A2 A1
  201.                  47 45
  202.                  17 17", header=TRUE)
  203. barplot(as.matrix(dat),
  204.         horiz = TRUE,
  205.         space = 0.5,
  206.         names.arg =  c("A1","A2"),
  207.         col=gray.colors(0),
  208.         main="Zastoupení výrobců ve výběru",
  209.         xlim = c(0,65),
  210.         xpd=TRUE
  211.         )
  212.  
  213.  
  214.  
  215. # prevod na procenta
  216. mydata <- data.frame(
  217.   row.names =c("A1","A2","A3","A4"),
  218.   ok =c(71.4 ,73.8, 72.4, 64.8),#45,48,42,35
  219.   fail =c(28.6, 26.2, 27.6, 35.2))# 18,17,16,19
  220.  
  221. x <- barplot(t(as.matrix(mydata)), col=gray.colors(2,alpha = 0.20),
  222.              legend=FALSE, border=NA, args.legend=
  223.                list(bty="n", border=NA), horiz=TRUE,
  224.              ylab="Typ abraziva", xlab="%")
  225. text(x=30 ,y=x, labels=c("71.4% (45)","73.8% (48)","72.4% (42)","64.8% (35)"), col="black")
  226. text(x=85,y=x,labels=c("28.6% (18)","26.2% (17)","27.6% (16)","35.2% (19)"), col="black")
  227.  
  228.  
  229.  
  230. sigma3HorniA1 = prumerA1 + (2 * smerodatnaOdchylkaA1)
  231. sigma3DolniA1 = prumerA1 - (2 * smerodatnaOdchylkaA1)
  232.  
  233. sigma3HorniA2 = prumerA2 + (2 * smerodatnaOdchylkaA2)
  234. sigma3DolniA2 = prumerA2 - (2 * smerodatnaOdchylkaA2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement