In R I want to create a bar chart where I pick out 12 most common bird species and illustrate the number of observations per species and calender week in a bar chart. data_artportal has 30 columns and I therefore need to extract data from the "artnamn" column and the "startdatum" (start date) column.
This might be useful: I can get week numbers with: lubridate::isoweek(start_date). I should use facet_wrap to divide different species. The first days in january are sorted as week 53 (rather than week 1) so I have to use forcats::fct_relevel to place this bar at the front.
These are the first 15 rows of my dataset:
df <- dput(head(df, 15))
structure(list(Id = c(97785066, 97785067, 97785310, 97786982,
97786985, 97786990, 97788368, 97788369, 97788370, 97788371, 97788372,
97788373, 97788374, 97788375, 97788376), Taxonsorteringsordning = c(55235,
54989, 55235, 54735, 54944, 55232, 53958, 54006, 54035, 54069,
54078, 54187, 54222, 54452, 54449), Rödlistade = c(NA, NA, NA,
NA, NA, "NT", NA, NA, NA, NA, NA, NA, NA, "NT", "VU"), Artnamn = c("Koltrast",
"Blåmes", "Koltrast", "Sparvhök", "Skata", "Björktrast", "Knölsvan",
"Gräsand", "Vigg", "Knipa", "Storskrake", "Tamduva", "Sothöna",
"Fiskmås", "Gråtrut"), `Vetenskapligt namn` = c("Turdus merula",
"Cyanistes caeruleus", "Turdus merula", "Accipiter nisus", "Pica pica",
"Turdus pilaris", "Cygnus olor", "Anas platyrhynchos", "Aythya fuligula",
"Bucephala clangula", "Mergus merganser", "Columba livia forma domestica",
"Fulica atra", "Larus canus", "Larus argentatus"), Auktor = c("Linnaeus, 1758",
"(Linnaeus, 1758)", "Linnaeus, 1758", "(Linnaeus, 1758)", "(Linnaeus, 1758)",
"Linnaeus, 1758", "(J.F.Gmelin, 1789)", "Linnaeus, 1758", "(Linnaeus, 1758)",
"(Linnaeus, 1758)", "Linnaeus, 1758", NA, "Linnaeus, 1758", "Linnaeus, 1758",
"Pontoppidan, 1763"), Antal = c("2", "2", "1", "1", "2", "10",
"1", "5", "5", "2", "6", "3", "1", "1", "1"), `Ålder/stadium` = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_),
Kön = c(NA, NA, NA, "hona", NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA), Aktivitet = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_), Lokalnamn = c("Björnstigen 129,Bergshamra,Solna",
"Björnstigen 129,Bergshamra,Solna", "Frösundavik", "Frösundavik",
"Tivoli", "Frösundavik", "Bergshamra", "Bergshamra", "Bergshamra",
"Bergshamra", "Bergshamra", "Bergshamra", "Bergshamra", "Bergshamra",
"Bergshamra"), Ostkoordinat = c(1626890, 1626890, 1626094,
1626094, 1626780, 1626094, 1626623, 1626623, 1626623, 1626623,
1626623, 1626623, 1626623, 1626623, 1626623), Nordkoordinat = c(6586736,
6586736, 6585523, 6585523, 6585860, 6585523, 6586750, 6586750,
6586750, 6586750, 6586750, 6586750, 6586750, 6586750, 6586750
), Noggrannhet = c(25, 25, 100, 100, 125, 100, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344), Diffusion = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Län = c("Stockholm",
"Stockholm", "Stockholm", "Stockholm", "Stockholm", "Stockholm",
"Stockholm", "Stockholm", "Stockholm", "Stockholm", "Stockholm",
"Stockholm", "Stockholm", "Stockholm", "Stockholm"), Kommun = c("Solna",
"Solna", "Solna", "Solna", "Solna", "Solna", "Solna", "Solna",
"Solna", "Solna", "Solna", "Solna", "Solna", "Solna", "Solna"
), Provins = c("Uppland", "Uppland", "Uppland", "Uppland",
"Uppland", "Uppland", "Uppland", "Uppland", "Uppland", "Uppland",
"Uppland", "Uppland", "Uppland", "Uppland", "Uppland"), Församling = c("Solna",
"Solna", "Solna", "Solna", "Solna", "Solna", "Solna", "Solna",
"Solna", "Solna", "Solna", "Solna", "Solna", "Solna", "Solna"
), Startdatum = structure(c(18993, 18993, 18993, 18993, 18991,
18993, 18993, 18993, 18993, 18993, 18993, 18993, 18993, 18993,
18993), class = "Date"), Starttid = structure(c(NA, NA, NA,
NA, 57420, NA, 33000, 31620, 31620, 31620, 32460, 36720,
31680, 33840, 30600), class = c("hms", "difftime"), units = "secs"),
Slutdatum = structure(c(18993, 18993, 18993, 18993, 18993,
18993, 18993, 18993, 18993, 18993, 18993, 18993, 18993, 18993,
18993), class = "Date"), Sluttid = structure(c(NA, NA, NA,
NA, 34560, NA, 33000, 31620, 31620, 31620, 32460, 36720,
31680, 33840, 30600), class = c("hms", "difftime"), units = "secs"),
Kommentar = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), Biotop = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), Rapportör = c("Björn Lindkvist", "Björn Lindkvist",
"Anders Eriksson", "Anders Eriksson", "Henrik Spovin", "Anders Eriksson",
"jesper sollerman", "jesper sollerman", "jesper sollerman",
"jesper sollerman", "jesper sollerman", "jesper sollerman",
"jesper sollerman", "jesper sollerman", "jesper sollerman"
), Observatörer = c("Björn Lindkvist", "Björn Lindkvist",
"Anders Eriksson", "Anders Eriksson", "Henrik Spovin", "Anders Eriksson",
"jesper sollerman", "jesper sollerman", "jesper sollerman",
"jesper sollerman", "jesper sollerman", "jesper sollerman",
"jesper sollerman", "jesper sollerman", "jesper sollerman"
)), row.names = c(NA, -15L), class = c("tbl_df", "tbl", "data.frame"
))
Full data below: https://www.dropbox.com/s/sj1jrd6qiigdwe4/artportalen.csv?dl=0
Many of the columns aren't really applicable here, the ones that I find relevant is "artnamn" (name of species) and startdatum (start date)