Learn R Programming

sp (version 0.9-78)

zerodist: find point pairs with equal spatial coordinates

Description

find point pairs with equal spatial coordinates

Usage

zerodist(obj, zero = 0.0, unique.ID = FALSE) 
zerodist2(obj1, obj2, zero = 0.0) 
remove.duplicates(obj, zero = 0.0, remove.second = TRUE)

Arguments

obj
object of, or extending, class SpatialPoints
obj1
object of, or extending, class SpatialPoints
obj2
object of, or extending, class SpatialPoints
zero
distance values less than or equal to this threshold value are considered to have zero distance (default 0.0)
unique.ID
logical; if TRUE, return an ID (integer) for each point that is different only when two points do not share the same location
remove.second
logical; if TRUE, the second of each pair of duplicate points is removed, if FALSE remove the first

Value

  • zerodist and zerodist2 return a two-column matrix with in each row pairs of row numbers with identical coordinates; a matrix with zero rows is returned if no such pairs are found. For zerodist, row number pairs refer to row pairs in obj. For zerodist2, row number pairs refer to rows in obj and obj2, respectively. remove.duplicates removes duplicate observations if present, and else returns obj.

Examples

Run this code
data(meuse)
summary(meuse)
# pick 10 rows
n <- 10
ran10 <- sample(nrow(meuse), size = n, replace = TRUE)
meusedup <- rbind(meuse, meuse[ran10, ])
coordinates(meusedup) <- c("x", "y")
zd <- zerodist(meusedup)
sum(abs(zd[1:n,1] - sort(ran10))) # 0!
# remove the duplicate rows:
meusedup2 <- meusedup[-zd[,2], ]
summary(meusedup2)
meusedup3 <- subset(meusedup, !(1:nrow(meusedup) %in% zd[,2]))
summary(meusedup3)
coordinates(meuse) <- c("x", "y")
zerodist2(meuse, meuse[c(10:33,1,10),])

Run the code above in your browser using DataLab