library(tidyverse)

Wide to long format

boys <- data.frame(name = c("Josef Novák", "Jakub Patočka", "Miroslav Müller", 
                            "Karel Rychlý", "Matěj Průha", "Václav Záveský"), 
                   math = c(1,1,3,2,3,3), cz = c(2,1,1,1,1,3), 
                   en = c(NA, NA, 1,1,1,1), de = c(2,1,NA,NA,NA,2),
                   bio = c(2,2,NA,NA,2,3), his = c(NA, NA, 1,2,NA, NA), 
                   fy = c(NA,NA,NA,2,2,NA), geo = c(1,2,1,NA, NA, NA))

Imagine you would like to plot the boys’ grades like this: BREAKOUT ROOMS, SUGGEST DATA FRAME STRUCTURE

boys_long %>% ggplot(mapping = aes(x = name, y = grade, color = course)) +
  geom_jitter(position = position_jitter(width = 0.2, height = 0, seed = 1)) +
  geom_violin(aes(group = name), fill = NA)

NEUKAZUJ!!! ############################################################################

formerly: gather

Pivot wider (complement to pivot_longer)

formerly spread

vignette("pivot")

Course on DataCamp: https://learn.datacamp.com/courses/reshaping-data-with-tidyr

Separate

You want to have first names and surnames in two separate columns

If you need a more complicated splitting, use extract (extracts regular expression groups).

Unite

You want the values in the first_name and the surname columns to form a sequence of surname and first name separated by a comma and a space. Keep the original two columns, too.

LS0tCnRpdGxlOiAiTG9uZyBhbmQgd2lkZSAtIHRpZHlyICIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCiMgV2lkZSB0byBsb25nIGZvcm1hdAoKYGBge3J9CmJveXMgPC0gZGF0YS5mcmFtZShuYW1lID0gYygiSm9zZWYgTm92w6FrIiwgIkpha3ViIFBhdG/EjWthIiwgIk1pcm9zbGF2IE3DvGxsZXIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLYXJlbCBSeWNobMO9IiwgIk1hdMSbaiBQcsWvaGEiLCAiVsOhY2xhdiBaw6F2ZXNrw70iKSwgCiAgICAgICAgICAgICAgICAgICBtYXRoID0gYygxLDEsMywyLDMsMyksIGN6ID0gYygyLDEsMSwxLDEsMyksIAogICAgICAgICAgICAgICAgICAgZW4gPSBjKE5BLCBOQSwgMSwxLDEsMSksIGRlID0gYygyLDEsTkEsTkEsTkEsMiksCiAgICAgICAgICAgICAgICAgICBiaW8gPSBjKDIsMixOQSxOQSwyLDMpLCBoaXMgPSBjKE5BLCBOQSwgMSwyLE5BLCBOQSksIAogICAgICAgICAgICAgICAgICAgZnkgPSBjKE5BLE5BLE5BLDIsMixOQSksIGdlbyA9IGMoMSwyLDEsTkEsIE5BLCBOQSkpCgpgYGAKCkltYWdpbmUgeW91IHdvdWxkIGxpa2UgdG8gcGxvdCB0aGUgYm95cycgZ3JhZGVzIGxpa2UgdGhpczoKQlJFQUtPVVQgUk9PTVMsIFNVR0dFU1QgREFUQSBGUkFNRSBTVFJVQ1RVUkUKYGBge3J9CmJveXNfbG9uZyAlPiUgZ2dwbG90KG1hcHBpbmcgPSBhZXMoeCA9IG5hbWUsIHkgPSBncmFkZSwgY29sb3IgPSBjb3Vyc2UpKSArCiAgZ2VvbV9qaXR0ZXIocG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLjIsIGhlaWdodCA9IDAsIHNlZWQgPSAxKSkgKwogIGdlb21fdmlvbGluKGFlcyhncm91cCA9IG5hbWUpLCBmaWxsID0gTkEpCmBgYAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiBORVVLQVpVSiEhIQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoKCgoKCmBgYHtyfQpib3lzX2xvbmcgPC0gYm95cyAlPiUgcGl2b3RfbG9uZ2VyKGNvbHMgPSAtbmFtZSwgIG5hbWVzX3RvID0gImNvdXJzZSIsIHZhbHVlc190byA9ICJncmFkZSIsCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXNfZHJvcF9uYSA9IFRSVUUpCmhlYWQoYm95c19sb25nLDEwKQpgYGAKCmZvcm1lcmx5OiBgZ2F0aGVyYAoKYGBge3J9CmJveXMgJT4lIHRpZHlyOjpnYXRoZXIoLW5hbWUsIGtleSA9ICJjb3Vyc2UiLCB2YWx1ZSA9ICJncmFkZSIpCmBgYAoKCmBgYHtyfQpib3lzX2xvbmcgJT4lIGdncGxvdChtYXBwaW5nID0gYWVzKHggPSBuYW1lLCB5ID0gZ3JhZGUsIGNvbG9yID0gY291cnNlKSkgKwogIGdlb21faml0dGVyKHBvc2l0aW9uID0gcG9zaXRpb25faml0dGVyKHdpZHRoID0gMC4yLCBoZWlnaHQgPSAwLCBzZWVkID0gMSkpICsgCiAgZ2VvbV92aW9saW4oYWVzKGdyb3VwID0gbmFtZSksIGZpbGwgPSBOQSkKYGBgCgojIFBpdm90IHdpZGVyIChjb21wbGVtZW50IHRvIGBwaXZvdF9sb25nZXJgKQoKCmBgYHtyfQpib3lzX2xvbmcgJT4lIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSAiY291cnNlIiwgdmFsdWVzX2Zyb20gPSAiZ3JhZGUiKQpgYGAKCmZvcm1lcmx5IGBzcHJlYWRgCgpgYGB7cn0KYm95c19sb25nICU+JSB0aWR5cjo6c3ByZWFkKGtleSA9IGNvdXJzZSwgdmFsdWUgPSBncmFkZSkKYGBgCgoKYGBge3J9CnZpZ25ldHRlKCJwaXZvdCIpCmBgYApDb3Vyc2Ugb24gRGF0YUNhbXA6IGh0dHBzOi8vbGVhcm4uZGF0YWNhbXAuY29tL2NvdXJzZXMvcmVzaGFwaW5nLWRhdGEtd2l0aC10aWR5cgoKCgoKCiMgU2VwYXJhdGUKWW91IHdhbnQgdG8gaGF2ZSBmaXJzdCBuYW1lcyBhbmQgc3VybmFtZXMgaW4gdHdvIHNlcGFyYXRlIGNvbHVtbnMKCmBgYHtyfQooc2VwbmFtZXMgPC0gYm95c19sb25nICU+JSB0aWR5cjo6c2VwYXJhdGUoY29sID0gIm5hbWUiLCBpbnRvID0gYygiZmlyc3RfbmFtZSIsICJzdXJuYW1lIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcCA9ICIgIikpICMgc2VwIGFsc28gYWNjZXB0cyByZWd1bGFyIGV4cHJlc3Npb25zICAKYGBgCgpJZiB5b3UgbmVlZCBhIG1vcmUgY29tcGxpY2F0ZWQgc3BsaXR0aW5nLCB1c2UgYGV4dHJhY3RgIChleHRyYWN0cyByZWd1bGFyIApleHByZXNzaW9uIGdyb3VwcykuCgojIFVuaXRlCgpZb3Ugd2FudCB0aGUgdmFsdWVzIGluIHRoZSBgZmlyc3RfbmFtZWAgYW5kIHRoZSBgc3VybmFtZWAgY29sdW1ucyB0byBmb3JtIGEgCnNlcXVlbmNlIG9mIHN1cm5hbWUgYW5kIGZpcnN0IG5hbWUgc2VwYXJhdGVkIGJ5IGEgY29tbWEgYW5kIGEgc3BhY2UuIEtlZXAgdGhlIApvcmlnaW5hbCB0d28gY29sdW1ucywgdG9vLiAKCmBgYHtyfQpzZXBuYW1lcyAlPiUgdW5pdGUoc3VybmFtZSwgZmlyc3RfbmFtZSwgc2VwID0gIiwgIiwgY29sID0gIm5hbWUiLCAKICAgICAgICAgICAgICAgICAgIHJlbW92ZSA9IEZBTFNFKQpgYGAKCgoKCgoKCgoKCgoK