diff --git a/website/prosess.qmd b/website/prosess.qmd index 781311d..f18673f 100644 --- a/website/prosess.qmd +++ b/website/prosess.qmd @@ -17,20 +17,44 @@ suppressMessages(library(knitr)) suppressMessages(library(dplyr)) suppressMessages(library(kableExtra)) -# Read in data -dt <- read.csv("../data/katalogdata.csv") - -# Add columns for language and new names -dt["Språk"] <- stringr::word(dt$keyword)[1] -dt["Språk"] <- ifelse(dt["Språk"] == "rfunc", "R", "Python") - -dt$Funksjon = kableExtra::cell_spec(dt$func, link = dt$url, new_tab = T) -dt$Pakke <- dt$pack -dt$Navn <- dt$navn -dt$Beskrivelse <- dt$description - -# Select columns for table -dt <- dt[, c("Funksjon", "Pakke", "Navn", "Språk", "Beskrivelse", "keyword")] +# Create main table +create_table <- function(){ + # Read in data + dt <- read.csv("../data/katalogdata.csv") + + # Add columns for language and new names + dt["Språk"] <- stringr::word(dt$keyword)[1] + dt["Språk"] <- ifelse(dt["Språk"] == "rfunc", "R", "Python") + + # Add column for combination of function name and link + dt$Funksjon <- sprintf('%s', dt$url, dt$func) + dt$Pakke <- sprintf('%s',dt$pack_url, dt$pack) + + dt$Navn <- dt$navn + dt$Beskrivelse <- dt$description + + # Select columns for table + dt <- dt[, c("Funksjon", "Pakke", "Navn", "Språk", "Beskrivelse", "keyword")] +} +dt <- create_table() + +# Function for filtering and formatting tables +create_keyword_table <- function(dt, keywords){ + matches <- sapply(keywords, function(k) grepl(k, dt$keyword, ignore.case = T)) + + # Combine matches across keywords (any keyword matches) + row_matches <- rowSums(matches) > 0 + + # Get table rows + dt_filtered <- dt[row_matches, -match("keyword", names(dt))] + + row.names(dt_filtered) <- NULL + + return(kable(dt_filtered, escape = F, allign="lllcl", format = "html") %>% + kable_styling() %>% + column_spec(1, extra_css = "white-space: nowrap;") %>% + column_spec(2, extra_css = "white-space: nowrap;")) +} ``` @@ -67,21 +91,13 @@ Ingen funksjoner enda. ## *5.3 Kontrollere og validere* ```{r} -# filter for dataediterings functions -dt_kon <- dt[grepl("kontrollere", dt$keyword) | grepl("5.3", dt$keyword), -match("keyword", names(dt))] -row.names(dt_kon) <- NULL -kable(dt_kon, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("kontrollere", "5.3")) ``` ## *5.4 Editere og imputere* ```{r} -# filter for dataediterings functions -dt_kon <- dt[grepl("imputere", dt$keyword) | grepl("5.4", dt$keyword), -match("keyword", names(dt))] -row.names(dt_kon) <- NULL -kable(dt_kon, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("imputere", "5.4")) ``` ## *5.5 Avlede nye variabler* @@ -89,11 +105,7 @@ Ingen funksjoner enda ## *5.6 Beregne vekter* ```{r} -# filter for dataediterings functions -dt_kon <- dt[grepl("vektberegning", dt$keyword) | grepl("5.6", dt$keyword), -match("keyword", names(dt))] -row.names(dt_kon) <- NULL -kable(dt_kon, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("vektberegning", "5.6")) ``` ## *5.7 Beregne aggregater* @@ -108,21 +120,13 @@ Ingen funksjoner enda :::{.panel-tabset} ## *6.1 Utarbeid produktutkast* ```{r} -# filter for dataediterings functions -dt_sesong <- dt[grepl("6.1", dt$keyword), -match("keyword", names(dt))] -row.names(dt_sesong) <- NULL -kable(dt_sesong, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("6.1")) ``` ## *6.2 Kvalitetssikre produkter* ```{r} -# filter for dataediterings functions -dt_kon <- dt[grepl("6.2", dt$keyword), -match("keyword", names(dt))] -row.names(dt_kon) <- NULL -kable(dt_kon, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("6.2")) ``` ## *6.3 Tolke og forklarer produkter* @@ -130,11 +134,7 @@ Ingen funksjoner enda. ## *6.4 Gjennomføre avslørings kontroll* ```{r} -# filter for dataediterings functions -dt_kon <- dt[grepl("6.4", dt$keyword), -match("keyword", names(dt))] -row.names(dt_kon) <- NULL -kable(dt_kon, escape = F, allign="lllcl") %>% -kable_styling() +create_keyword_table(dt, c("6.4")) ``` ## *6.5 Ferdigstille produkter*