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