Wrote function to extract information about artworks from XML files
This commit is contained in:
parent
11cfa6d7aa
commit
4d783e1f64
@ -371,4 +371,42 @@ add_topic <- function(data, topics) {
|
||||
out
|
||||
}
|
||||
|
||||
###########################################################################
|
||||
|
||||
# Create data frame with information on artworks
|
||||
|
||||
extract_artworks <- function(artworks, files = paste0(artworks, ".xml"),
|
||||
path = path) {
|
||||
|
||||
out <- NULL
|
||||
i <- 1
|
||||
|
||||
for (artwork in artworks) {
|
||||
|
||||
if (length(files) == 1) {
|
||||
index_file <- files
|
||||
} else {
|
||||
index_file <- files[i]
|
||||
}
|
||||
|
||||
index <- paste(path, artwork, index_file, sep = "/")
|
||||
varnames <- c("artist", "title", "misc", "description")
|
||||
xmllist <- XML::xmlToList(index)$header[varnames]
|
||||
|
||||
if (any(sapply(xmllist, is.null))) {# necessary for missing entries
|
||||
names(xmllist) <- varnames
|
||||
xmllist[which(sapply(xmllist, is.null))] <- NA
|
||||
}
|
||||
xmldat <- as.data.frame(xmllist)
|
||||
xmldat$artwork <- artwork
|
||||
# trim white space from strings
|
||||
xmldat$artist <- trimws(xmldat$artist)
|
||||
xmldat$title <- trimws(xmldat$title)
|
||||
xmldat$misc <- trimws(xmldat$misc)
|
||||
xmldat$description <- trimws(xmldat$description)
|
||||
out <- rbind(out, xmldat)
|
||||
i <- i + 1
|
||||
}
|
||||
out
|
||||
}
|
||||
|
||||
|
49
code/overview_artworks.R
Normal file
49
code/overview_artworks.R
Normal file
@ -0,0 +1,49 @@
|
||||
# setwd("C:/Users/nwickelmaier/Nextcloud/Documents/MDS/2023ss/60100_master_thesis/code")
|
||||
|
||||
source("functions.R")
|
||||
|
||||
fname <- "overview_artworks.tex"
|
||||
if (file.exists(fname)) file.remove(fname)
|
||||
|
||||
path <- "C:/Users/nwickelmaier/Nextcloud/Documents/MDS/2023ss/60100_master_thesis/data/ContentEyevisit/eyevisit_cards_light"
|
||||
artworks <- dir(path = path)
|
||||
artworks <- artworks[artworks != "glossar"]
|
||||
|
||||
dat <- extract_artworks(artworks, path = path)
|
||||
|
||||
fout <- file(fname, "a") # open in append mode
|
||||
|
||||
writeLines("\\documentclass[a4paper,12pt]{article}", fout)
|
||||
writeLines("\\usepackage{graphicx}", fout)
|
||||
writeLines("\\usepackage[margin = 2cm]{geometry}", fout)
|
||||
writeLines("\\author{Nora Wickelmaier}", fout)
|
||||
writeLines("\\title{Overview of Artworks from MTT in HAUM}", fout)
|
||||
writeLines("\\date{\\today}", fout)
|
||||
writeLines("\\begin{document}", fout)
|
||||
writeLines("\\maketitle", fout)
|
||||
#writeLines("\\newpage", fout)
|
||||
|
||||
for (artwork in dat$artwork) {
|
||||
|
||||
writeLines(paste0("\\section*{Artwork Number ", artwork, "}"), fout)
|
||||
writeLines("", fout)
|
||||
writeLines("\\noindent", fout)
|
||||
writeLines(paste0("Artist: ", dat[dat$artwork == artwork, "artist"]), fout)
|
||||
writeLines("", fout)
|
||||
writeLines("\\noindent", fout)
|
||||
writeLines(paste0("Title: ", dat[dat$artwork == artwork, "title"]), fout)
|
||||
writeLines("", fout)
|
||||
|
||||
writeLines("\\begin{center}", fout)
|
||||
art_path <- paste(path, artwork, artwork, sep = "/")
|
||||
writeLines(paste0("\\includegraphics[width = 12cm]{", art_path, "}"), fout)
|
||||
writeLines("\\end{center}", fout)
|
||||
writeLines("", fout)
|
||||
writeLines("\\noindent", fout)
|
||||
#writeLines(paste0("Info: ", dat[dat$artwork == artwork, "misc"]), fout)
|
||||
writeLines("\\newpage", fout)
|
||||
}
|
||||
|
||||
writeLines("\\end{document}", fout)
|
||||
close(fout)
|
||||
|
Loading…
Reference in New Issue
Block a user