Generate a dyad ID for edge list generated by edge_nn or edge_dist.

dyad_id(DT = NULL, id1 = NULL, id2 = NULL)

Arguments

DT

input data.table with columns id1 and id2, as generated by edge_dist or edge_nn

id1

ID1 column name generated by edge_dist or edge_nn

id2

ID2 column name generated by edge_dist or edge_nn

Value

dyad_id returns the input data.table with appended "dyadID" column

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) # 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')]
#> ID X Y datetime population #> 1: A 715851.4 5505340 2016-11-01 00:00:54 1 #> 2: A 715822.8 5505289 2016-11-01 02:01:22 1 #> 3: A 715872.9 5505252 2016-11-01 04:01:24 1 #> 4: A 715820.5 5505231 2016-11-01 06:01:05 1 #> 5: A 715830.6 5505227 2016-11-01 08:01:11 1 #> --- #> 14293: J 700616.5 5509069 2017-02-28 14:00:54 1 #> 14294: J 700622.6 5509065 2017-02-28 16:00:11 1 #> 14295: J 700657.5 5509277 2017-02-28 18:00:55 1 #> 14296: J 700610.3 5509269 2017-02-28 20:00:48 1 #> 14297: J 700744.0 5508782 2017-02-28 22:00:39 1
# Temporal grouping group_times(DT, datetime = 'datetime', threshold = '20 minutes')
#> ID X Y datetime population minutes timegroup #> 1: A 715851.4 5505340 2016-11-01 00:00:54 1 0 1 #> 2: A 715822.8 5505289 2016-11-01 02:01:22 1 0 2 #> 3: A 715872.9 5505252 2016-11-01 04:01:24 1 0 3 #> 4: A 715820.5 5505231 2016-11-01 06:01:05 1 0 4 #> 5: A 715830.6 5505227 2016-11-01 08:01:11 1 0 5 #> --- #> 14293: J 700616.5 5509069 2017-02-28 14:00:54 1 0 1393 #> 14294: J 700622.6 5509065 2017-02-28 16:00:11 1 0 1394 #> 14295: J 700657.5 5509277 2017-02-28 18:00:55 1 0 1440 #> 14296: J 700610.3 5509269 2017-02-28 20:00:48 1 0 1395 #> 14297: J 700744.0 5508782 2017-02-28 22:00:39 1 0 1396
# 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')
#> timegroup ID1 ID2 distance dyadID #> 1: 1 A <NA> NA <NA> #> 2: 1 B G 5.782904 B-G #> 3: 1 C <NA> NA <NA> #> 4: 1 D <NA> NA <NA> #> 5: 1 E H 65.061671 E-H #> --- #> 22985: 1440 G <NA> NA <NA> #> 22986: 1440 H <NA> NA <NA> #> 22987: 1440 I C 2.831071 C-I #> 22988: 1440 I F 7.512922 F-I #> 22989: 1440 J <NA> NA <NA>