We’re playing Secret Santa in my family: you are giving a present to only one other person, and their identity is only known to you. You need to give them a handmade present or a present bought in a second-hand store. Well that last part is our own variation of the concept.
You might be playing Secret Santa in your lab.
Here is a little R function to sort the draw without anyone seeing the outcome, and without the need to involve an external participant. The only inputs are:
-a vector of names of participants; for example c(“Patrick”,”Nicole”,”Maria”,”Pablo”)
-the folder where you want the output files; for example “C:/Users/Maria/SecretSanta”
After you’ve run the function, send to each person the output file named after them.
The function:
secretsanta=function(names,directory){ chosen=names for (i in 1:length(names)){ if (names[i]%in% chosen){ choice=sample(chosen[-which(chosen==names[i])],1) }else{ choice=sample(chosen,1) } chosen=chosen[-which(chosen==choice)] write.table(paste(directory,"/",names[i],", you will give a present to ",choice,sep=""), file=paste(names[i],".txt",sep=""),quote=F,row.names=F,col.names=F) } return("Done! the files are in the provided directory. Merry Christmas.") }
Load the function into R by entering the code above, and then run the function with your input:
secretsanta(names=c("Patrick","Nicole","Maria","Pablo"), directory="C:/Users/Maria/SecretSanta")
Merry Christmas!