View source: R/centroid_fusion.R
centroid_fusion | R Documentation |
centroid_fusion
calculates the centroid (mean location) of each
timestep in fusion events. The function accepts an edge list of fusion events
identified by fusion_id
from edge lists generated with
edge_dist
and a data.table
with relocation data appended with a
timegroup
column from group_times
. It is recommended to use the
argument fillNA = FALSE
for edge_dist
when using
centroid_fusion
to avoid unnecessarily merging additional rows.
Relocation data should be in two columns representing the X and Y
coordinates.
centroid_fusion(
edges = NULL,
DT = NULL,
id = NULL,
coords = NULL,
timegroup = "timegroup",
na.rm = FALSE
)
edges |
edge list generated generated by |
DT |
input data.table with timegroup column generated with
|
id |
character string of ID column name |
coords |
character vector of X coordinate and Y coordinate column names. Note: the order is assumed X followed by Y column names. |
timegroup |
timegroup field in the DT within which the grouping will be calculated |
na.rm |
if NAs should be removed in calculating mean location, see
|
The edges
and DT
must be data.table
. If your data is a
data.frame
, you can convert it by reference using
data.table::setDT
or by reassigning using
data.table::data.table
.
The edges
and DT
are internally merged in this function using
the columns timegroup
(from group_times
) and ID1
and
ID2
(in edges
, from dyad_id
) and id
(in
DT
). This function expects a fusionID
present, generated with
the fusion_id
function. The timegroup
argument expects the
names of a column in edges
which correspond to the timegroup column.
The id
, coords
and timegroup
arguments expect the names
of a column in DT
which correspond to the id, X and Y coordinates and
timegroup columns. The na.rm
argument is passed to the rowMeans
function to control if NA values are removed before calculation.
centroid_fusion
returns the input edges
appended with
centroid columns for the X and Y coordinate columns.
These columns represents the centroid coordinate columns for each timestep in a fusion event. The naming of these columns will correspond to the provided coordinate column names prefixed with "centroid_".
Note: due to the merge required within this function, the output needs to
be reassigned unlike some other spatsoc
functions like
fusion_id
and group_pts
.
A message is returned when centroid columns are already exists in the input
edges
, because they will be overwritten.
fusion_id edge_dist group_pts
Other Centroid functions:
centroid_dyad()
,
centroid_group()
# Load data.table
library(data.table)
# Read example data
DT <- fread(system.file("extdata", "DT.csv", package = "spatsoc"))
# Cast the character column to POSIXct
DT[, datetime := as.POSIXct(datetime, tz = 'UTC')]
# Temporal grouping
group_times(DT, datetime = 'datetime', threshold = '20 minutes')
# Edge list generation
edges <- edge_dist(
DT,
threshold = 100,
id = 'ID',
coords = c('X', 'Y'),
timegroup = 'timegroup',
returnDist = TRUE,
fillNA = FALSE
)
# Generate dyad id
dyad_id(edges, id1 = 'ID1', id2 = 'ID2')
# Generate fusion id
fusion_id(edges, threshold = 100)
# Calculate fusion centroid
centroids <- centroid_fusion(
edges,
DT,
id = 'ID',
coords = c('X', 'Y'),
timegroup = 'timegroup', na.rm = TRUE
)
print(centroids)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.