% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/dyad_id.R
\name{dyad_id}
\alias{dyad_id}
\title{Dyad id}
\usage{
dyad_id(DT = NULL, id1 = NULL, id2 = NULL)
}
\arguments{
\item{DT}{input data.table with columns id1 and id2, as generated by
\code{edge_dist} or \code{edge_nn}}

\item{id1}{ID1 column name generated by \code{edge_dist} or \code{edge_nn}}

\item{id2}{ID2 column name generated by \code{edge_dist} or \code{edge_nn}}
}
\value{
\code{dyad_id} returns the input \code{data.table} with appended "dyadID"
column.

See details for appending outputs using modify-by-reference in the
\href{https://docs.ropensci.org/spatsoc/articles/faq.html}{FAQ}.
}
\description{
Generate a dyad ID for edge-list generated by \code{edge_nn} or
\code{edge_dist}.
}
\details{
An undirected edge identifier between, for example individuals A and B will
be A-B (and reverse B and A will be A-B). Internally sorts and pastes id
columns.

More details in the edge and dyad vignette (in progress).
}
\examples{
# Load data.table
library(data.table)
\dontshow{data.table::setDTthreads(1)}

# 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 = TRUE
  )

# Generate dyad IDs
dyad_id(edges, 'ID1', 'ID2')

# Or, using the new geometry interface
get_geometry(DT, coords = c('X', 'Y'), crs = 32736)
edges <- edge_dist(DT, threshold = 100, id = 'ID', timegroup = 'timegroup')
dyad_id(edges, id = 'ID1', id2 = 'ID2')
}
