Is there a set of R functions analogous to intersect
, union
, etc. which act on vectors of coordinates? Take a two collections of locations in N dimensions, each of which could be viewed as N-row by M-location array, and find the common locations (i.e. columns), and so on. I suppose this could be done with a couple *apply
lines to compare every column in one array to the columns of the other, but was hoping for something faster or neater.
Asked
Active
Viewed 1,293 times
1

Carl Witthoft
- 20,573
- 9
- 43
- 73
1 Answers
3
There is a 'sets' package, but the simplest solution would be to use the base set operations: union
, , intersect
, and setdiff
on the results of paste
with a separator such as "_"
. If these are represented as 'numeric" values you may need to make decsions about what really means "equality" and for that some round
-ing or trunc
-cation may be needed.
Another thought is that implementation might be more self-documenting in the columnwise arrangement you describe to use the "plyr" function:colwise
. I'm not a dedicated user of plyr methods, but this appears to be how it might start:
colpastefn <- colwise( function(...){paste(... , sep="_") )
Although the description of the function suggests it should work as a standalone function on a dataframe, all of the illustrated uses are with ddply
.

IRTFM
- 258,963
- 21
- 364
- 487
-
Works for me. I certainly agree that an intelligent experimentalist :-) would want to `trunc` his values before deciding which locations were identical. I'll check this answer unless someone comes up with something spectacular in the near future. – Carl Witthoft Mar 15 '12 at 12:34