Advertisement
Guest User

TRANSLACIJA

a guest
Mar 26th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 5.62 KB | None | 0 0
  1. #UCITAVANJE i RACUNICA
  2. list.filenames <- dir(pattern='*gaze.csv$', recursive = T)
  3. ispitanik <- list()
  4. xc <- list()
  5. yc <- list()
  6. centar_x <- 0
  7. centar_y <- 0
  8. dc_x <- 0
  9. dc_y <- 0
  10. xc_new <- list()
  11. yc_new <- list()
  12. xc_clean <- list()
  13. yc_clean <- list()
  14.  
  15. for (i in 1:length(list.filenames)) {
  16.   #ucitavanje
  17.   ispitanik[[i]] <- read.csv2(list.filenames[i], header = FALSE)
  18.   ispitanik[[i]][[4]] <- 0
  19.  
  20.   #dodeljuje pocetne vrednosti
  21.   pom_niz <- vector(mode = "numeric")
  22.   k <- 0
  23.   max_klaster <- 0
  24.   j<-1
  25.   #rasporedjuje gejzove po klasterima
  26.   while ("0" %in% ispitanik[[i]][[4]]) {
  27.     if (ispitanik[[i]][[4]][[j]] == 0) {
  28.       max_klaster <- max_klaster + 1
  29.       ispitanik[[i]][[4]][[j]] <- max_klaster
  30.       if (j< length(ispitanik[[i]][[4]])) {
  31.         for (k in (j+1):length(ispitanik[[i]][[4]])) {
  32.           if (ispitanik[[i]][[4]][[k]] == 0) {
  33.             d <- sqrt((ispitanik[[i]][[2]][[j]]-ispitanik[[i]][[2]][[k]])^2+
  34.                         (ispitanik[[i]][[3]][[j]]-ispitanik[[i]][[3]][[k]])^2)
  35.             if (d < 38) {   #OVDE MENJAJ UDALJENOST GEJZOVA ZA PRIPADNOST KLASTERU
  36.               ispitanik[[i]][[4]][[k]] <- max_klaster
  37.               pom_niz <- append(pom_niz, k, after = length(pom_niz))
  38.             }
  39.           }
  40.         }
  41.       }
  42.       while (length(pom_niz) > 0) {
  43.         prvi_u_pom_nizu <- pom_niz[1]
  44.         for (p in (j+1):length(ispitanik[[i]][[4]])) {
  45.           if (ispitanik[[i]][[4]][[p]] == 0) {
  46.             d <- sqrt((ispitanik[[i]][[2]][[prvi_u_pom_nizu]] - ispitanik[[i]][[2]][[p]])^2+
  47.                         (ispitanik[[i]][[3]][[prvi_u_pom_nizu]] - ispitanik[[i]][[3]][[p]])^2)
  48.             if (d < 38) {
  49.               ispitanik[[i]][[4]][[p]] <- max_klaster
  50.               pom_niz <- append(pom_niz, p, after = length(pom_niz))
  51.             }
  52.           }
  53.         }
  54.         pom_niz <- pom_niz[-1]
  55.       }
  56.     }
  57.     j<-j+1
  58.   }
  59.  
  60.   a <- table(ispitanik[[i]][[4]])
  61.   a <- data.frame(a)
  62.  
  63.   #dodeljuje 111 neklasterima
  64.   for (q in 1:nrow(a)){
  65.     if (a[q,2] < 4) {
  66.       ispitanik[[i]][[4]][ispitanik[[i]][[4]] == a[q,1]] <- 111
  67.     }
  68.   }
  69.  
  70.   xc[[i]] <- aggregate(ispitanik[[i]][[2]], list(ispitanik[[i]][[4]]),mean)
  71.   yc[[i]] <- aggregate(ispitanik[[i]][[3]], list(ispitanik[[i]][[4]]), mean)
  72.  
  73.   # poklapanje "istih" klastera  
  74.   # prosecni centar i-tog ispitanika  
  75.   xc_clean[[i]] <- xc[[i]][-nrow(xc[[i]]),] # izbacuje 111 klaster
  76.   centar_x[i] <- mean(xc_clean[[i]][,2])
  77.  
  78.   yc_clean[[i]] <- yc[[i]][-nrow(yc[[i]]),]
  79.   centar_y[i] <- mean(yc_clean[[i]][,2])
  80. }
  81.  
  82. centar_probrani_x <- centar_x
  83. centar_probrani_y <- centar_y
  84.  
  85. centar_glob_x <- mean(centar_probrani_x, na.rm = TRUE)
  86. centar_glob_y <- mean(centar_probrani_y, na.rm = TRUE)
  87.  
  88. dc_x <- centar_x - centar_glob_x
  89. dc_y <- centar_y - centar_glob_y
  90.  
  91. for (t in 1:length(centar_x)) {
  92.  
  93.   ispitanik[[t]][[2]] <-  ispitanik[[t]][[2]] - dc_x[t]
  94.   ispitanik[[t]][[3]] <-  ispitanik[[t]][[3]] - dc_y[t]
  95. }
  96.  
  97. centar_x <- round(centar_x, digits = 0)
  98. centar_y <- round(centar_y, digits = 0)
  99. centar_probrani_x <- round(centar_probrani_x, digits = 0)
  100. centar_probrani_y <- round(centar_probrani_y, digits = 0)
  101. dc_x <-round(dc_x, digits = 0)
  102. dc_y <- round(dc_y, digits = 0)
  103. centar_glob_x <- round(centar_glob_x, digits = 0)
  104. centar_glob_y <- round(centar_glob_y, digits = 0)
  105.  
  106. #stampa ispitanike za aplikaciju u results
  107. for (t in 1:length(centar_x)) {
  108.   write.table(cbind(round(ispitanik[[t]][[1]], digits = 0), round(ispitanik[[t]][[2]], digits = 0), round(ispitanik[[t]][[3]], digits = 0)), file = list.filenames[t] ,row.names=FALSE,col.names=FALSE, sep=";")
  109. }
  110.  
  111.  
  112. rm(list = ls())
  113. list.filenames <- dir(pattern='*gaze.csv$', recursive = T)
  114. list.data<-list()
  115. pozicija_u_lf <- c()
  116. br_odbacenih <- c()
  117.  
  118. ukupan_br_ispitanika <- length(list.filenames)
  119.  
  120. #ucitava fajlove  i uzima indekse praznih po kojima treba brisati, ti prazni su u pozicija_u_lf
  121. for (i in 1:length(list.filenames)) {
  122.   #ucita
  123.   list.data[[i]]<-read.csv2(list.filenames[i], header = FALSE)
  124.   if (is.na(list.data[[i]][[2]][[1]]) || is.na(list.data[[i]][[3]][[1]])) { #!!!!!!!!!!!!!!!!!!!!!!!!!!
  125.     pozicija_u_lf <- c(pozicija_u_lf, i)
  126.   }
  127.      #pamti pozicije koje treba izbaciti, tj. ispitanike koje treba izbaciti, izbacuje ih po kriterujumu praznih za gejzove
  128. }
  129.  
  130. pozicija_u_lf <- unique(pozicija_u_lf)
  131. br_odbacenih <- length(pozicija_u_lf) #obrisi posle
  132.  
  133. #PRIPREMA DA obrisemo iz list.filenames lose ispitanike
  134. #back_up_lista_imena <- list.filenames #kasnije obrisi
  135.  
  136. if (length(pozicija_u_lf) >0 ) {
  137.   ociscena_lista <- list.filenames[-pozicija_u_lf]
  138.   za_brisanje <- list.filenames[pozicija_u_lf]
  139.   file.remove(za_brisanje)
  140. }
  141.  
  142.  
  143. log_baza<- read.table("log.txt", header = TRUE)
  144. log_baza$odbaceni_2[length(log_baza$odbaceni_2)] <- br_odbacenih
  145. procenat_odbacenih <- (as.numeric(log_baza$odbaceni_1[length(log_baza$odbaceni_1)]) + as.numeric(log_baza$odbaceni_2[length(log_baza$odbaceni_2)]))/as.numeric(log_baza$br_ispitanika[length(log_baza$br_ispitanika)])
  146. log_baza$ukupno_odbacenih[length(log_baza$ukupno_odbacenih)] <- paste0(round(procenat_odbacenih, digits = 2)*100,"%")
  147. odbaceni1p <- as.numeric(log_baza$odbaceni_1[length(log_baza$ukupno_odbacenih)])/as.numeric(log_baza$br_ispitanika[length(log_baza$ukupno_odbacenih)])
  148. odbaceni2p <- as.numeric(log_baza$odbaceni_2[length(log_baza$ukupno_odbacenih)])/ as.numeric(log_baza$br_ispitanika[length(log_baza$ukupno_odbacenih)])
  149. log_baza$odbaceni_1[length(log_baza$ukupno_odbacenih)] <- paste0(round(odbaceni1p, digits = 2)*100,"%")
  150. log_baza$odbaceni_2[length(log_baza$ukupno_odbacenih)] <- paste0(round(odbaceni2p, digits = 2)*100,"%")
  151. write.table(log_baza, "log.txt", quote =F, row.names = FALSE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement