fun_bmi <- function(weight_kg, height_m) {
# browser() # go into function in terminal
bmi = weight_kg / height_m**2
return(bmi)
}
fun_C_to_F <- function(C) {
F_ = C * 9/5 + 32
return(f_)
}
fun_ED <- function(x1, x2, y1, y2) {
ED = as.integer(sqrt((x2-x1)^2 + (y2-y1)^2))
}Week 5: Movement Patterns
Task 1: Write your own functions
Task 2: Prepare Analysis
data <- read_delim("data/wildschwein_BE_2056.csv", delim=",")
data_sample <- data |>
filter(TierName != "Ruth",
DatetimeUTC >= as.POSIXct("2015-04-01", tz = "UTC"),
DatetimeUTC < as.POSIXct("2015-04-15", tz = "UTC"))Task 3: Create Join Key
data_sample$DatetimeRound <- round_date(data_sample$DatetimeUTC, "15 mins")Task 4: Measuring distance at concurrent locations
Split data frame to one per animal.
data_list <- split(x=data_sample, f=data_sample$TierName) # split by TierName
list2env(data_list, envir=.GlobalEnv) # assign each element as a separate data frame<environment: R_GlobalEnv>
Join data sets by new datetime column.
data2 <- inner_join(Rosa, Sabi, by="DatetimeRound")Calculate Euclidean Distances.
data2$ED <- fun_ED(x1=data2$E.x, x2=data2$E.y, y1=data2$N.x, y2=data2$N.y)Determine if the animals are spatially close enough to constitute a meet.
threshold = 100
data2 <- data2 |>
mutate(meet = ED <= threshold)Task 5: Visualise data
Filter for meeting data points.
data2_filter <- data2 |>
filter(meet)