a <- mt_sim_brownian_motion(1:2, tracks = c("a", "b"))
b <- mt_sim_brownian_motion(1:2, tracks = c("g", "h"))
mt_stack(a, b)
## having different columns does not cause problems
a$extra_data <- 1:nrow(a)
mt_stack(list(a, b))
## Combining different datasets works
fishers <- mt_read(mt_example(), n_max = 100, col_select = c(
"eobs:used-time-to-get-fix",
"location-long", "location-lat", "timestamp", "individual-local-identifier"
))
## Objects to stack need to have the same CRS, use either st_set_crs
## or st_transform depending what is appropriate
random_track <- mt_sim_brownian_motion(
t = as.POSIXct("1970-1-1") + 1:3,
tracks = factor(letters[1:2])
) |> sf::st_set_crs(4326)
mt_time(random_track) <- "timestamp"
mt_stack(
random_track,
fishers
)
track_1 <- mt_sim_brownian_motion(tracks = letters[1:3], t = 1:3) |>
mutate_track_data(sex = "f")
track_2 <- mt_sim_brownian_motion(tracks = letters[3:4], t = 4:6) |>
mutate_track_data(sex = c("f", "m"))
mt_stack(track_1, track_2,
.track_combine = "merge_list"
)
mt_stack(track_1, track_2,
.track_combine = "merge"
)
# \donttest{
if (requireNamespace("units")) {
males <- tail(filter_track_data(
fishers,
grepl("M", `individual-local-identifier`)
), 5)
females <- filter_track_data(
fishers,
grepl("F", `individual-local-identifier`)
)
females$`eobs:used-time-to-get-fix` <- units::set_units(
females$`eobs:used-time-to-get-fix`,
"hours"
)
females <- tail(females, 5)
## combining with different units works correctly (units are unified with correct conversion)
mt_stack(males, females)
}
# }
Run the code above in your browser using DataLab