Created
November 7, 2024 06:08
-
-
Save jonspring/09062f2bd4be4869460138d8d8a75f74 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(tidyverse) | |
files = c( | |
fs::dir_ls("~/Downloads/Shelter1_Tension_files"), | |
fs::dir_ls("~/Downloads/Shelter_2_Tension_files")) | |
doggies <- data.frame(file = files) |> | |
mutate(data = map(files, | |
~readxl::read_excel(.x, range = "A1:D5000"))) |> | |
unnest_legacy(data) |> | |
filter(!is.na(Date)) |> | |
# filter() | |
mutate(datetime = ymd_h(paste(Date, "00")) + hour(Time)*60*60 + minute(Time)*60 + | |
second(Time)) |> | |
mutate(`Averaged Newtons` = coalesce(`Averaged Newtons`, Averaged, `averaged newtons`, `average newtons`, `Averaged newtons`)) |> | |
mutate(filename = fs::path_file(file)) |> | |
separate(filename, c("Dog", "collar", "stamp"), sep = "_") |> | |
mutate(time_adj = datetime - min(datetime), .by = Dog) |> | |
mutate(time_adj2 = datetime - min(datetime), .by = c(Dog, collar)) |> | |
mutate(collar_count = n_distinct(collar[!is.na(`Averaged Newtons`)]), .by = Dog) |> | |
mutate(Dog = fct_reorder(Dog, datetime) |> fct_rev()) |> | |
mutate(collar = fct_reorder(collar, time_adj)) | |
dog_deets <- tibble::tribble( | |
~Name, ~`Age_mo`, ~Shelter.breed.estimate, ~`Weight_kg`, ~Shelter, | |
"Dominic", 60L, "German shepherd", 34.02, 1L, | |
"Duke", 84L, "Rottweiler/German shepherd mix", 30.26, 1L, | |
"Harley", 36L, "Doberman mix", 28.71, 1L, | |
"Mr. Fitz", 108L, "Pit bull mix", 19.5, 1L, | |
"Ranger", 12L, "Australian cattle dog mix", 23.32, 1L, | |
"Royal", 60L, "Pit bull mix", 31.12, 1L, | |
"Sunny", 20L, "German shepherd/husky mix", 15.12, 1L, | |
"Bubba", 19L, "Pit bull mix", 26.68, 1L, | |
"Daisy", 72L, "German short haired pointer/pit bull mix", 25.22, 1L, | |
"Mars", 60L, "Pit bull mix", 26.17, 1L, | |
"Sulley", 12L, "Mastiff mix", 26.26, 1L, | |
"Buzz", 10L, "Husky mix", 17.92, 1L, | |
"Jake", 10L, "German shepherd", 24.04, 1L, | |
"Saint", 24L, "German shepherd", 33.57, 1L, | |
"Juju", 84L, "Husky mix", 26.76, 1L, | |
"KimChi", 36L, "Siberian husky/German shepherd mix", 20.87, 2L, | |
"Mrs. Potato head", 60L, "Pit bull mix", 28.58, 2L, | |
"Reggie", 60L, "Pit bull mix", 37.65, 2L, | |
"Richa", 120L, "Presa canario/giant schnauzer", 43.09, 2L, | |
"Ursula", 13L, "Pit bull mix", 20.41, 2L, | |
"Boris", 24L, "Doberman", 41.5, 2L, | |
"Klutz", 12L, "Belgian malinois mix", 33.57, 2L, | |
"Tyr", 48L, "German shepherd", 42.64, 2L | |
) | |
doggies |> | |
left_join(dog_deets, join_by(Dog == Name)) |> view() | |
doggies |> | |
ggplot(aes(datetime, Dog, color = collar, size = `Averaged Newtons`)) + | |
geom_point() + | |
scale_size_area() | |
doggies |> | |
left_join(dog_deets, join_by(Dog == Name)) |> | |
filter(!is.na(Weight_kg)) |> | |
arrange(Weight_kg, Dog) |> | |
mutate(Dog = paste0(Dog, "\n", round(Weight_kg), "kg ", coalesce(Shelter.breed.estimate,"")) |> fct_inorder()) |> | |
# filter(collar_count == 4) |> | |
ggplot(aes(time_adj2/60, Dog, fill = collar, height = `Averaged Newtons`)) + | |
ggridges::geom_ridgeline(scale = 1/80, linewidth = 0.2) + | |
theme_minimal() + | |
scale_x_continuous(minor_breaks = NULL) + | |
facet_grid(.~collar, scales = "free_y", space = "free_y") + | |
labs(title = "Average pulling force during a 5min walk", | |
y = NULL, x = NULL) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment