Generate Your Own Nineteenth Century Polish Family
I always thought that it was a quirk of my own family that approximately everyone is named Frank or Ed or Helen. But as I was learning more about the exodus of my ancestor Wojciech Walkowiak and three generations of his family from Szamotuly, Poznań to Schenectady, NY, I found the Poznań Project and saw that there was a drop-down menu to choose your relative’s first name from! Apparently there was only a small collection of names in use at the time.
One quirk that I did find is that sometimes there would be two daughters named Maryanna in the same family. The second would be denoted Maryanna (druga), druga meaning, roughly, “another one.”
Now you can use R to generate your own 19th century Polish family.
# Given the number of children, returns a vector of names
make_family <- function(num_children){
boy_names <- c("Wojchiech", "Adam", "Adolf", "Aleksander", "Andrzej", "Anton", "Augustyn", "Bartłomiej", "Karol", "Kazimierz", "Kacper", "Krystian", "Krzysztof", "Daniel", "Edward", "Ernst", "Ferdynand", "Franciszek", "Fryderyk", "Jerzy", "Gotfryd", "Bogumił", "Gustaw", "Henryk", "Hermann", "Ignatz", "Jakub", "Jan", "Józef", "Juliusz", "Wawrzyn", "Leopold", "Łukasz", "Ludwik", "Marcin", "Mateusz", "Michał", "Mikolaj", "Paweł", "Piotr", "Robert", "Rudolf", "Samuel", "Szymon", "Stanisław", "Szczepan", "Teodor", "Tomasz", "Walenty", "Wincenty", "Wilhelm")
# Maryanna appears twice in this vector so we can have two daughters named Maryanna
girl_names <- c("Maryanna", "Agnieszka", "Amalia", "Anastazja", "Anna", "Antonie", "Apollonia", "Augusta", "Barbara", "Beata", "Berta", "Karolina", "Katarzyna", "Krystyna", "Konstancja", "Dorota", "Elżbieta", "Emilia", "Ernestina", "Ewa", "Franciszka", "Fryderyka", "Jadwiga", "Helena", "Henryka", "Johanna", "Józefa", "Julia", "Justyna", "Łucja", "Ludwika", "Magdalena", "Małgorzata", "Maryanna", "Marcjanna", "Matylda", "Michalina", "Nepomucena", "Otylia", "Petronella", "Regina", "Rozalia", "Zofia", "Zuzanna", "Tekla", "Teofila", "Teresa", "Weronika", "Wiktoria", "Wilhelmina")
# The number of boys in the family comes from a binomial distribution
num_boys <- rbinom(1, num_children, 0.5)
num_girls <- num_children - num_boys
# Sample without replacement; the only name that can be doubled is Maryanna
boy_children <- sample(boy_names, num_boys, replace=FALSE)
girl_children <- sample(girl_names, num_girls, replace=FALSE)
# Combine the boys with the girls
children <- c(boy_children, girl_children)
# Mix things up so we don't have all the boys first and girls second
children <- sample(children, length(children), replace=FALSE)
# If we have two Maryannas, the second one should be Maryanna (druga)
if(sum(children == "Maryanna") == 2)
{
children[max(which(children=="Maryanna"))] <- "Maryanna (druga)"
}
return(children)
}
make_family(12)