Analiza podatkov s programom R

« nazaj

Analiza podatkov s programom R - vaje 12.11.2020

e.naslov <- "([0-9a-zA-Z_-]+(?:[.][0-9a-zA-Z_-]+)*)@([0-9a-zA-Z_-]+(?:[.][0-9a-zA-Z_-]+)+)"
#              polje        (pika polje) 0 ali več @  polje         (pika polje) 1 ali večkrat
najdi.datume <- function(x) {
  besede <- unlist(strsplit(x, " "))
  oblike <- c("([0-9]{1,2})[.]([0-9]{1,2})[.]([0-9]{2,4})",
              "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})",
              "([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})")
  datumi <- besede[grep(paste(oblike, collapse="|"), besede)]
  datumi <- gsub(oblike[2], "\\2.\\1.\\3", datumi)
  datumi <- gsub(oblike[3], "\\3.\\2.\\1", datumi)
  return(gsub(paste0(".*?", oblike[1], ".*"), "\\1.\\2.\\3", datumi))
}
odcepitev <- parse_character(tabela$odcepitev, na=c("", "-", "—"))
odcepitev <- gsub(" \\([^'].*\\)", "", odcepitev)
odcepitev <- gsub("[*]", "", odcepitev)
odcepitev <- gsub("LJ", "Ljubljana", odcepitev) %>% strsplit(split=", ") %>%
  lapply(. %>% .[! is.na(.)])
obcina <- lapply(1:nrow(tabela), . %>% {
    rep(tabela$obcina[.] %>% as.character(), length(odcepitev[[.]]))
  }) %>% unlist() %>% parse_factor(levels(tabela$obcina))
odcepitev <- unlist(odcepitev)
leto <- odcepitev %>% strapplyc("\\('([0-9]{2})\\)") %>%
  sapply(. %>% ifelse(length(.) == 0, NA, .)) %>% parse_integer() %>%
  { ifelse(. < 50, . + 2000, . + 1900) }
odcepitev <- odcepitev %>% strapplyc("^[^\\(]+") %>% unlist() %>% trimws()
odcepitve <- data.frame(obcina, odcepitev, leto) %>%
  inner_join(tabela %>% select(obcina, ustanovitev)) %>%
  transmute(obcina, odcepitev, leto=ifelse(is.na(leto), ustanovitev, leto))