Online Interactive Social Networkmap

Hello

I would like to publish an R code (see below) in Shinyapp.io in which my own name and the names of other people are entered. A social network map is to be created with several entries. This should change automatically with each new entry.

Unfortunately, I get an error with the working directory in this R script.

Can anyone help me?

Error in setwd("C:/Users/floor/OneDrive - Hochschule Luzern/Forschung und Professionalisierung/Disseminationen/Tagungen-Kolloquium-Notizen-Orga/2024_2_Fachtagung Hochschullernwerkstätten/NetworkDatabase") : 2023-12-17T13:43:26.644422+00:00 shinyapps[10814475]: cannot change working directory 2023-12-17T13:43:26.648475+00:00 shinyapps[10814475]: Calls: local ... tryCatch ->

Working Directory definieren

getwd()
setwd("C:/Users/floor/OneDrive - Hochschule Luzern/Forschung und Professionalisierung/Disseminationen/Tagungen-Kolloquium-Notizen-Orga/2024_2_Fachtagung Hochschullernwerkstätten/NetworkDatabase")

Packages installieren:

install.packages(c("shiny", "igraph", "DBI", "RSQLite", "ggraph", "ggplot2", "ggrepel"), dependencies = TRUE)

install.packages("rsconnect")

Packages laden

library(shiny)
library(igraph)
library(DBI)
library(RSQLite)
library(ggraph)
library(ggplot2)
library(ggrepel)
library(rsconnect)

###############################

Ohne Aktualisierung

###############################

Verbindung zur SQLite-Datenbank herstellen

con <- dbConnect(RSQLite::SQLite(), "network_database.db")

Erstellung der Tabelle, falls sie noch nicht existiert

dbGetQuery(con, "CREATE TABLE IF NOT EXISTS network_data (from_node TEXT, to_node TEXT)")

UI

ui <- fluidPage(
titlePanel("Mit wem haben Sie sich unterhalten?"),
sidebarLayout(
sidebarPanel(
textInput("myName", "Ihr Name:"), # Textfeld für den eigenen Namen
textInput("otherNames", "Namen Ihrer Gesprächspartner:innen (durch Komma getrennt):"), # Textfeld für andere Namen
actionButton("confirmButton", "Bestätigen") # Button für die Bestätigung
),
mainPanel(
div(class = "times-new-roman", plotOutput("socialNetwork")) # Setzen der Schriftart im div-Container
)
)
)

Server

server <- function(input, output, session) {

Initialisierung der Daten

data <- reactiveVal(NULL)

observeEvent(input$confirmButton, {
# Verarbeitung der Eingaben und Aktualisierung der Datenbank
otherNames <- unlist(strsplit(input$otherNames, ","))
otherNames <- trimws(otherNames)

newConnections <- data.frame(from = rep(input$myName, length(otherNames)),
                             to = otherNames,
                             stringsAsFactors = FALSE)

# Daten aus der Datenbank lesen
existingData <- dbReadTable(con, "network_data")

# Kombinieren der Daten
combinedData <- rbind(existingData, newConnections)

# Schreiben der kombinierten Daten zurück in die Datenbank
dbWriteTable(con, "network_data", combinedData, overwrite = TRUE)

# Aktualisieren der Daten-ReactiveVal
data(combinedData)

})

output$socialNetwork <- renderPlot({
# Dynamische Aktualisierung des Netzwerks
if (!is.null(data())) {
graph <- graph_from_data_frame(data(), directed = TRUE)

  # Anzahl der Knoten im Graphen
  num_nodes <- vcount(graph)

  ggraph(graph, layout = "fr") + # Fruchterman-Reingold-Prozedur für das Layout
    geom_edge_link(arrow = arrow(type = "open", 
                                 length = unit(0.03, "npc"), 
                                 ends = "last", 
                                 angle = 15))+
    geom_node_point(size = log(num_nodes*3), 
                    color = "black") +
    geom_node_text(aes(label = name), 
                   size = ifelse(num_nodes <= 5, 10, 10 / sqrt(num_nodes)), 
                   family = "Arial", 
                   color = "black",
                   repel = TRUE) +
    theme_void() +
    ggtitle("Soziales Netzwerk")
  
}

})

Code zum Sichern der Datenbankverbindung beim Schließen der App

session$onSessionEnded(function() {
dbDisconnect(con)
})
}

shinyApp(ui, server)

You should not use setwd() within your shiny app, and you clearly cannot use "C:/Users/floor/OneDrive - Hochschule Luzern/Forschung und Professionalisierung/Disseminationen/Tagungen-Kolloquium-Notizen-Orga/2024_2_Fachtagung Hochschullernwerkstätten/NetworkDatabase" as working directory from within shinyapps.io, running on Linux.
Try to work with relative paths. Or actuylly remove it, as you don't savy anything.

Also

can be skipped.