Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • imebi/limesurvey/tokenaufbereiter
1 result
Show changes
Commits on Source (3)
# preparatory work ####
# reset workspace #
rm(list = ls())
# setwd #
setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter")
suppressWarnings({
suppressMessages({
library(readxl)
library(writexl)
library(tidyverse)
library(lubridate)
#source("./function_load.R")
source("./download_get_key.R")
})
})
#Umfragen ID:
# 433442
atr <- c(
"emailstatus",
"language"
)
ls_433442_0 <- get_responses(433442, iFromResponseID =1,iToResponseID=15000)
ls_433442_1 <- get_responses(433442, iFromResponseID =15001,iToResponseID=25000)
ls_433442_2 <- get_responses(433442, iFromResponseID =25001,iToResponseID=35000)
ls_433442_3 <- get_responses(433442, iFromResponseID =35001,iToResponseID=45000)
ls_433442_4 <- get_responses(433442, iFromResponseID =45001,iToResponseID=55000)
ls_433442_5 <- get_responses(433442, iFromResponseID =55001,iToResponseID=65000)
ls_433442_6 <- get_responses(433442, iFromResponseID =65001,iToResponseID=75000)
ls_433442_7 <- get_responses(433442, iFromResponseID =75001,iToResponseID=85000)
ls_433442_8 <- get_responses(433442, iFromResponseID =85001,iToResponseID=95000)
filtered_data_frames <- Filter(function(x) is.data.frame(get(x)), ls())
# die "values" zu "Data" machen und die participant_info entschachteln
data_frames_list <- lapply(filtered_data_frames, get)
suppressWarnings({
data_frames_list2 <- lapply(data_frames_list, unnest)
})
combined_df <- do.call(rbind, data_frames_list2)
tokenlist <- read_xlsx("G:/IMEBI_POST/Kunze.Mareike/token.xlsx")
result <- left_join(tokenlist, combined_df,by = c("originaltoken" = "token"))
result <- result %>% select(-id, -submitdate,-lastpage,-startlanguage,-seed,-startdate,-datestamp,-ipaddr,-FB0Q7q1,-FB0Q7q2.1.,-FB0Q7q2.2.)
print(result)
write.csv(result,paste0("./Adressen_nach_tokenliste_",format(Sys.Date(), "%Y_%m_%d"),".csv"), row.names = F)
...@@ -30,67 +30,71 @@ if (length(commandArgs(trailingOnly = TRUE)) > 0) { ...@@ -30,67 +30,71 @@ if (length(commandArgs(trailingOnly = TRUE)) > 0) {
#create global variable for the readline-command #create global variable for the readline-command
choice <- T choice <- T
function_create_validfrom <- function(combinedDataFrame){
#nrow(cleaned_df) # Funktion findet keine Verwendung. -> nicht fertig geschrieben!!
# Format für validfrom # wird in Limesurvey über die Menge geregelt.
# 2023-10-23 08:02 # function_create_validfrom <- function(combinedDataFrame){
# # Probleme die bei der automatischen Datumssetzung entstehen:
#erhöht den Tag immer um 1, damit das Skript ab dem nächsten Tag startet. # # Beim übergang auf den nächsten Monat muss aufgepasst werden.
date <- paste(year(Sys.time()),,,sep="-") # # Format für validfrom
zyear <- year(Sys.time()) # # 2023-10-23 08:02
zmonth <- month(Sys.time()) #
zday <- day(Sys.time())+1 # #erhöht den Tag immer um 1, damit das Skript ab dem nächsten Tag startet.
list_for_hour <- c() # date <- paste(year(Sys.time()),,,sep="-")
# zyear <- year(Sys.time())
for (i in 0:23){ # zmonth <- month(Sys.time())
if(i<10){ # zday <- day(Sys.time())+1
list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ","0",i,":00")) # list_for_hour <- c()
} else{ #
list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ",i,":00")) # for (i in 0:23){
} # if(i<10){
} # list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ","0",i,":00"))
print(list_for_hour) # } else{
# list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ",i,":00"))
# es werden 300-500 Mails in einer Stunde versendet. # }
# bei 24h werden somit zwischen 7200 und 12000 Mails versendet. # }
# bei 100.000 werten und 7200 Mails muss ich also über 14 Tage gehen. # print(list_for_hour)
#
# Erstelle einen leeren Vektor für die Datumswerte # # es werden 300-500 Mails in einer Stunde versendet.
date_values <- c() # # bei 24h werden somit zwischen 7200 und 12000 Mails versendet.
# # bei 100.000 werten und 7200 Mails muss ich also über 14 Tage gehen.
# Schleife von 0 bis 23 Stunden #
for (i in 0:23) { # # Erstelle einen leeren Vektor für die Datumswerte
# Erhöhe das Datum um eine Stunde # date_values <- c()
current_date <- start_date + hours(i) #
# # Schleife von 0 bis 23 Stunden
# Füge das Datum zum Vektor hinzu # for (i in 0:23) {
date_values <- c(date_values, current_date) # # Erhöhe das Datum um eine Stunde
# current_date <- start_date + hours(i)
# Wenn die Stunde 23 ist, erhöhe den Tag um eins und setze die Stunde auf 0 #
if (i == 23) { # # Füge das Datum zum Vektor hinzu
start_date <- start_date + days(1) # Erhöhe den Tag um eins # date_values <- c(date_values, current_date)
start_date <- start_date - hours(23) # Setze die Stunde auf 0 #
} # # Wenn die Stunde 23 ist, erhöhe den Tag um eins und setze die Stunde auf 0
} # if (i == 23) {
# start_date <- start_date + days(1) # Erhöhe den Tag um eins
# start_date <- start_date - hours(23) # Setze die Stunde auf 0
anzahl_zeilen <- nrow(cleaned_df) # }
# }
# Schleife über die Anzahl der Zeilen #
for (i in 1:anzahl_zeilen) { #
# Schreibe den aktuellen Wert in die Spalte 'column_name' # anzahl_zeilen <- nrow(cleaned_df)
cleaned_df$validfrom[i] <- date #
# # Schleife über die Anzahl der Zeilen
# Aktualisiere den Wert nach jeweils 300 Zyklen # for (i in 1:anzahl_zeilen) {
if (i %% 300 == 0) { # # Schreibe den aktuellen Wert in die Spalte 'column_name'
date <- wert + 1 # cleaned_df$validfrom[i] <- date
} #
} # # Aktualisiere den Wert nach jeweils 300 Zyklen
# if (i %% 300 == 0) {
# date <- wert + 1
# }
combined_token_with_download # }
} #
#
#
# combined_token_with_download
# }
#first: define all functions: #first: define all functions:
...@@ -143,15 +147,19 @@ function_start <- function(){ ...@@ -143,15 +147,19 @@ function_start <- function(){
cat(" wird verwendet, wenn TN angeschrieben werden, bei denen in der Mail keine Haushalts-ID angegeben wird.\n") cat(" wird verwendet, wenn TN angeschrieben werden, bei denen in der Mail keine Haushalts-ID angegeben wird.\n")
cat(" Tokenliste OHNE Haushald-ID erhält man von den wissenschaftlichen Mitarbeiter*innen\n") cat(" Tokenliste OHNE Haushald-ID erhält man von den wissenschaftlichen Mitarbeiter*innen\n")
cat("-------------------------------------------------------------------------------------------------------------------\n") cat("-------------------------------------------------------------------------------------------------------------------\n")
cat("5 = Tokenaufbereiter CoPrep Radiologie:\n")
#cat(" wird verwendet, wenn TN angeschrieben werden, bei denen in der Mail keine Haushalts-ID angegeben wird.\n")
#cat(" Tokenliste OHNE Haushald-ID erhält man von den wissenschaftlichen Mitarbeiter*innen\n")
cat("-------------------------------------------------------------------------------------------------------------------\n")
cat("9 = mir ist ein Fehler passiert. Es wird nichts gespeichert!\n") cat("9 = mir ist ein Fehler passiert. Es wird nichts gespeichert!\n")
function_read_prompt() function_read_prompt()
if (!choice %in% c("1","2","3","4","9")){ if (!choice %in% c("1","2","3","4","5","9")){
cat("\n") cat("\n")
cat("\n") cat("\n")
cat("##################\n") cat("##################\n")
cat("Ungültige Auswahl! Bitte verwende: 1, 2, 3, 4 oder 9. Danke.\n") cat("Ungültige Auswahl! Bitte verwende: 1, 2, 3, 4, 5 oder 9. Danke.\n")
cat("##################\n") cat("##################\n")
cat("\n") cat("\n")
cat("\n") cat("\n")
...@@ -168,13 +176,15 @@ function_start <- function(){ ...@@ -168,13 +176,15 @@ function_start <- function(){
function_Tokenaufbereiter_MIT_HHID_als_firstname() function_Tokenaufbereiter_MIT_HHID_als_firstname()
} else if (choice == 4) { } else if (choice == 4) {
function_Tokenaufbereiter_OHNE_HHID() function_Tokenaufbereiter_OHNE_HHID()
} else if (choice == 5) {
function_Tokenaufbereiter_coprep_radiologie()
} else { } else {
function_exit() function_exit()
} }
} }
} }
#Nummer 1
function_Tokenaufbereiter_alle_TN <- function() { function_Tokenaufbereiter_alle_TN <- function() {
cat("\n") cat("\n")
cat("Tokenaufbereiter alle TN\n") cat("Tokenaufbereiter alle TN\n")
...@@ -192,7 +202,7 @@ function_Tokenaufbereiter_alle_TN <- function() { ...@@ -192,7 +202,7 @@ function_Tokenaufbereiter_alle_TN <- function() {
combined_token_with_download <- combined_token_with_download |> relocate(id, .before = firstname) combined_token_with_download <- combined_token_with_download |> relocate(id, .before = firstname)
#save the file #save the file
#setwd("H:/01_Limesurvey_TokenVergleich") #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_alle_TN.csv"), row.names = F) write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_alle_TN.csv"), row.names = F)
...@@ -200,6 +210,7 @@ function_Tokenaufbereiter_alle_TN <- function() { ...@@ -200,6 +210,7 @@ function_Tokenaufbereiter_alle_TN <- function() {
} }
#Nummer 2
function_Tokenaufbereiter_Newsletter <- function() { function_Tokenaufbereiter_Newsletter <- function() {
cat("\n") cat("\n")
cat("Tokenaufbereiter Newsletter\n") cat("Tokenaufbereiter Newsletter\n")
...@@ -241,7 +252,7 @@ function_Tokenaufbereiter_Newsletter <- function() { ...@@ -241,7 +252,7 @@ function_Tokenaufbereiter_Newsletter <- function() {
filter(!token %in% token_for_newsletter_to_remove$token) filter(!token %in% token_for_newsletter_to_remove$token)
#save the file #save the file
#setwd("H:/01_Limesurvey_TokenVergleich") #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_Newsletter.csv"), row.names = F) write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_Newsletter.csv"), row.names = F)
function_end() function_end()
...@@ -252,7 +263,7 @@ function_Tokenaufbereiter_Newsletter <- function() { ...@@ -252,7 +263,7 @@ function_Tokenaufbereiter_Newsletter <- function() {
} }
} }
# Nummer 3
function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() { function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() {
cat("\n") cat("\n")
cat("Tokenaufbereiter MIT HHID als firstname\n") cat("Tokenaufbereiter MIT HHID als firstname\n")
...@@ -303,17 +314,18 @@ function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() { ...@@ -303,17 +314,18 @@ function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() {
combined_token_with_download <- combined_token_with_download |> relocate(token, .after = emailstatus) combined_token_with_download <- combined_token_with_download |> relocate(token, .after = emailstatus)
#save the file #save the file
#setwd("H:/01_Limesurvey_TokenVergleich") #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_mit_HHID_as_firstname.csv"), row.names = F) write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_mit_HHID_as_firstname.csv"), row.names = F)
function_end() function_end()
} else{ } else{
#Eingebe: irgenwas auser [ENTER] -> Abbruch #Eingabe: irgendwas ausser [ENTER] -> Abbruch
function_exit() function_exit()
} }
} }
#Nummer 4
function_Tokenaufbereiter_OHNE_HHID <- function() { function_Tokenaufbereiter_OHNE_HHID <- function() {
cat("\n") cat("\n")
cat("Tokenaufbereiter OHNE HHID\n") cat("Tokenaufbereiter OHNE HHID\n")
...@@ -332,6 +344,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { ...@@ -332,6 +344,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() {
if (choice == "y" || choice == ""){ if (choice == "y" || choice == ""){
#Eingabe: [ENTER] -> weiter gehts #Eingabe: [ENTER] -> weiter gehts
#token_list <- read_xlsx(file.choose())
#laden und joinen #laden und joinen
token_list <- tryCatch({ token_list <- tryCatch({
read_xlsx(file.choose()) read_xlsx(file.choose())
...@@ -351,7 +364,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { ...@@ -351,7 +364,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() {
#save the file #save the file
setwd("H:/01_Limesurvey_TokenVergleich") #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_ohne_HHID.csv"), row.names = F) write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_ohne_HHID.csv"), row.names = F)
function_end() function_end()
...@@ -360,11 +373,71 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { ...@@ -360,11 +373,71 @@ function_Tokenaufbereiter_OHNE_HHID <- function() {
#Eingabe: irgenwas auser [ENTER] -> Abbruch #Eingabe: irgenwas auser [ENTER] -> Abbruch
function_exit() function_exit()
} }
}
#Coprep-Radiologie
#Nummer 5 _ Neu Eingefügt am 12.11.2024 nach Anfrage von Mareike
function_Tokenaufbereiter_coprep_radiologie <- function() {
cat("\n")
cat("Tokenaufbereiter für CoPrep Radiologie\n")
cat("---------------------------------------\n")
if(use_powershell){
cat("Hast du die Datei? Press [y + ENTER]. Ansonsten kann das Script mit Eingabe von [e + ENTER] beendet werden\n")
}else{
cat("Hast du die Datei? Press [ENTER]. Ansonsten kann das Script mit Eingabe von [e + ENTER] beendet werden\n")
}
function_read_prompt()
if (choice == "y" || choice == ""){
#Eingabe: [ENTER] -> weiter gehts
#laden und joinen
token_list <- tryCatch({
read_xlsx(file.choose())
}, error = function(e) {
message("Failure: ",conditionMessage(e))
NULL
function_exit()
})
names(token_list) <- tolower(names(token_list))
combined_token_with_download <- inner_join(token_list,cleaned_df, by=c("hhid"="token"))
#rename
combined_token_with_download <- combined_token_with_download %>%
rename(first = firstname)
combined_token_with_download <- combined_token_with_download %>%
rename(last = lastname)
combined_token_with_download$lastname <- paste(combined_token_with_download$first,
combined_token_with_download$last, sep = " ")
combined_token_with_download <- combined_token_with_download %>%
rename(firstname = hhid)
combined_token_with_download$first <- NULL
combined_token_with_download$last <- NULL
# zeilennummer erzeugen
combined_token_with_download <- combined_token_with_download %>% mutate(id = row_number())
#relocate
combined_token_with_download <- combined_token_with_download |> relocate(id, .before = firstname)
combined_token_with_download <- combined_token_with_download |> relocate(lastname, .after = firstname)
combined_token_with_download <- combined_token_with_download |> relocate(token, .after = emailstatus)
#save the file
#setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_CoPrep_Radiologie.csv"), row.names = F)
function_end()
} else{
#Eingabe: irgendwas ausser [ENTER] -> Abbruch
function_exit()
}
} }
function_exit <- function() { function_exit <- function() {
cat("\n") cat("\n")
cat("Script wird beendet. Es erfolgt keine Speicherung irgendwelcher Dateien.\n") cat("Script wird beendet. Es erfolgt keine Speicherung irgendwelcher Dateien.\n")
......
...@@ -21,7 +21,7 @@ setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter") ...@@ -21,7 +21,7 @@ setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter")
cat("####\n") cat("####\n")
cat("At the end, all generated files are stored in the following working directory:\n") # nolint: line_length_linter. cat("At the end, all generated files are stored in the following working directory:\n") # nolint: line_length_linter.
cat(getwd(), "\n") cat(getwd(),"/erstellte_Dateien","\n")
cat("####\n") cat("####\n")
# load packages and source files # # load packages and source files #
...@@ -77,37 +77,47 @@ atr <- c( ...@@ -77,37 +77,47 @@ atr <- c(
#"invited", #"invited",
#"reminded", #"reminded",
p_433442_00<- get_participants(iSurveyID = 433442,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr) # URSPRÜNGLICH VERWENDET::
p_433442_01<- get_participants(iSurveyID = 433442,iStart=50001,iLimit = 100000, bUnused=FALSE, aAttributes=atr) # p_433442_00<- get_participants(iSurveyID = 433442,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr)
cat("####\n") # p_433442_01<- get_participants(iSurveyID = 433442,iStart=50001,iLimit = 100000, bUnused=FALSE, aAttributes=atr)
cat("Der größte Wert aus der Umfrage 433442 zeigt: ") # Das ist aber falsch, da hier zuviele Daten geladen werden. Das iLimit gibt nicht an, bis wohin geladen wird, sondern wieviele Daten gezogen werden.
print(max(p_433442_01$tid, na.rm = TRUE))
if(max(p_433442_01$tid, na.rm = TRUE)>=99900){ # Schleife -> nicht geschrieben
cat("Die tid der Tabelle 433442 steht kurz vor 100.000 -> nochmal im Skript schauen, damit der Ablauf passt.\n") # Fehlerhafte Werte werden in nachfolgenden Prüfung wieder heraus sortiert
cat("Nachdem tid >= 100.001 wird die dritte Datei der Umfrage 433442 geladen und nicht mehr gelöscht.\n") p_433442_00<- get_participants(iSurveyID = 433442,iStart=1,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
} p_433442_01<- get_participants(iSurveyID = 433442,iStart=25001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("####\n") p_433442_02<- get_participants(iSurveyID = 433442,iStart=50001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("\n") p_433442_03<- get_participants(iSurveyID = 433442,iStart=75001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
#Umfrage zum Zeitpunkt der Erstellung des Skripts: 21.05.2024 noch leer p_433442_04<- get_participants(iSurveyID = 433442,iStart=100001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
#Die Datei enhält eine Spalte mit name status : "No survey participants found." p_433442_05<- get_participants(iSurveyID = 433442,iStart=125001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
p_433442_02 <- get_participants(iSurveyID = 433442,iStart=100001,iLimit = 150000, bUnused=FALSE, aAttributes=FALSE) p_433442_06<- get_participants(iSurveyID = 433442,iStart=150001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
#daher: solange die Tabelle leer ist, wird sie gleich wieder gelöscht p_433442_07<- get_participants(iSurveyID = 433442,iStart=175001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
if("status" %in% colnames(p_433442_02)){ p_433442_08<- get_participants(iSurveyID = 433442,iStart=200001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
rm(p_433442_02) p_433442_09<- get_participants(iSurveyID = 433442,iStart=225001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
}else if (max(p_433442_02$tid, na.rm = TRUE)>=0){ p_433442_10<- get_participants(iSurveyID = 433442,iStart=250001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("!!!!\n") p_433442_11<- get_participants(iSurveyID = 433442,iStart=275001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("Das Skript lädt jetzt den 3.Teil der Umfrage: 433442\n") p_433442_12<- get_participants(iSurveyID = 433442,iStart=300001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("Das aktuelle Tid beträgt:") p_433442_13<- get_participants(iSurveyID = 433442,iStart=325001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
print(max(p_433442_02$tid, na.rm = TRUE)) p_433442_14<- get_participants(iSurveyID = 433442,iStart=375001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("!!!!\n") p_433442_15<- get_participants(iSurveyID = 433442,iStart=400001,iLimit = 25000, bUnused=FALSE, aAttributes=atr)
cat("\n")
# Liste für die Prüfung und Löschung
alle_p_433442 <- mget(ls(pattern = "^p_433442_"))
for (element in names(alle_p_433442)) {
# Spalte "status" -> dann ist die Liste leer -> löschen
if ("status" %in% colnames(alle_p_433442[[element]])) {
rm(list = element, envir = .GlobalEnv)
}
} }
#Zwischenliste wieder entfernen
rm(alle_p_433442)
print("p_433442_xx vollständig heruntergeladen")
p_144481_00 <- get_participants(iSurveyID = 144481,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr) p_144481_00 <- get_participants(iSurveyID = 144481,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr)
print("p_144481_00 heruntergeladen")
p_538473_00<- get_participants(iSurveyID = 538473,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr) p_538473_00<- get_participants(iSurveyID = 538473,iStart=1,iLimit = 50000, bUnused=FALSE, aAttributes=atr)
print("p_538473_00 heruntergeladen")
#erste Idee für die Weiterarbeit #### #erste Idee für die Weiterarbeit ####
#binden und "tid" entfernen #binden und "tid" entfernen
#token144481 <- read.csv("tokens_144481.csv") #token144481 <- read.csv("tokens_144481.csv")
...@@ -119,7 +129,7 @@ p_538473_00<- get_participants(iSurveyID = 538473,iStart=1,iLimit = 50000, bUnus ...@@ -119,7 +129,7 @@ p_538473_00<- get_participants(iSurveyID = 538473,iStart=1,iLimit = 50000, bUnus
#alle "Test"-Zeilen entfernen #alle "Test"-Zeilen entfernen
#TestTokens NUR über firstname identifizieren #TestTokens NUR über firstname identifizieren
#token<- token |> filter(!str_detect(tolower(firstname), 'test')) #token<- token |> filter(!str_detect(tolower(firstname), 'test'))
cat("\n")
cat("####\n") cat("####\n")
cat("Der Download wurde abgeschlossen.\n") cat("Der Download wurde abgeschlossen.\n")
cat("Nun werden die heruntergeladen Tabellen verbunden.\n") cat("Nun werden die heruntergeladen Tabellen verbunden.\n")
...@@ -152,7 +162,7 @@ removed_test_values <- unique_df[!unique_df$firstname %in% values_to_delete, ] ...@@ -152,7 +162,7 @@ removed_test_values <- unique_df[!unique_df$firstname %in% values_to_delete, ]
#SAS und Anführungszeichen -> entfällt hier in R # #SAS und Anführungszeichen -> entfällt hier in R #
# Umlaute ersetzen # # Umlaute ersetzen #
# encode
cleaned_df <- removed_test_values |> mutate(across(firstname | lastname, cleaned_df <- removed_test_values |> mutate(across(firstname | lastname,
\(x) stringr::str_replace_all(string = x, \(x) stringr::str_replace_all(string = x,
c('ä' = 'ae', c('ä' = 'ae',
...@@ -167,7 +177,94 @@ cleaned_df <- removed_test_values |> mutate(across(firstname | lastname, ...@@ -167,7 +177,94 @@ cleaned_df <- removed_test_values |> mutate(across(firstname | lastname,
'š' = 's', 'š' = 's',
'Ž' = 'z', 'Ž' = 'z',
'–' = '-', '–' = '-',
'õ' = 'oe' 'õ' = 'oe',
'ẞ' = 'ss',
'ć' = 'c',
'â' = 'a',
'ż' = 'z',
'ä' = 'ae',
'ë' = 'ee',
'ö' = 'oe',
'ü' = 'ue',
'Ä' = 'Ae',
'Ë' = 'Ee',
'Ö' = 'Oe',
'Ü' = 'Ue',
'ß' = 'ss',
'é' = 'e',
'è' = 'e',
'ê' = 'e',
'ç' = 'c',
'á' = 'a',
'à' = 'a',
'â' = 'a',
'í' = 'i',
'ì' = 'i',
'î' = 'i',
'ó' = 'o',
'ò' = 'o',
'ô' = 'o',
'ú' = 'u',
'ù' = 'u',
'û' = 'u',
'ñ' = 'n',
'ý' = 'y',
'ÿ' = 'y',
'å' = 'a',
'ø' = 'o',
'Æ' = 'Ae',
'Ø' = 'Oe',
'Å' = 'Aa',
'ą' = 'a',
'ć' = 'c',
'ę' = 'e',
'ł' = 'l',
'ń' = 'n',
'ś' = 's',
'ź' = 'z',
'ż' = 'z',
'Ą' = 'A',
'Ć' = 'C',
'Ę' = 'E',
'Ł' = 'L',
'Ń' = 'N',
'Ś' = 'S',
'Ź' = 'Z',
'Ż' = 'Z',
'č' = 'c',
'ď' = 'd',
'ě' = 'e',
'ň' = 'n',
'ř' = 'r',
'š' = 's',
'ť' = 't',
'ů' = 'u',
'ž' = 'z',
'Č' = 'C',
'Ď' = 'D',
'Ě' = 'E',
'Ň' = 'N',
'Ř' = 'R',
'Š' = 'S',
'Ť' = 'T',
'Ů' = 'U',
'Ž' = 'Z',
'⁸' = '',
'♀' = '',
'‘' = '',
'ã' = 'a',
'ğ' = 'g',
'É' = 'E',
'Á' = 'A',
'ş' = 's',
'ū' = 'u',
'ė' = 'e',
'æ' = 'ae',
'É' = 'E',
'ş' = 's',
'ı' = 'l',
'ö' = 'oe',
'!' = ''
)))) ))))
# Die nicht geladenen Spalten neu einbinden und mit festen Werten speichern # # Die nicht geladenen Spalten neu einbinden und mit festen Werten speichern #
...@@ -181,7 +278,7 @@ cleaned_df$remindercount <- "0" ...@@ -181,7 +278,7 @@ cleaned_df$remindercount <- "0"
cleaned_df$completed <- "N" cleaned_df$completed <- "N"
cleaned_df$usesleft <- "1" cleaned_df$usesleft <- "1"
#sort at the beginning of the dataframe # sort at the beginning of the dataframe ####
list_for_email_sort <- c("Niki2007dc@gmx.com","Nadine.Glaser97@web.de","Jasmin.kroeber@gmx.de") list_for_email_sort <- c("Niki2007dc@gmx.com","Nadine.Glaser97@web.de","Jasmin.kroeber@gmx.de")
for (element in list_for_email_sort){ for (element in list_for_email_sort){
specific_rows <- cleaned_df[cleaned_df$email == element, ] specific_rows <- cleaned_df[cleaned_df$email == element, ]
...@@ -191,6 +288,6 @@ for (element in list_for_email_sort){ ...@@ -191,6 +288,6 @@ for (element in list_for_email_sort){
setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien")
# after cleaning . start with the user query #### # after cleaning . start with the user query ####
function_start() function_start()