2012-03-15 2 views
1

Есть ли набор R-функций, аналогичных intersect, union и т. Д., Которые действуют на векторы координат? Возьмем две коллекции локаций в N измерениях, каждая из которых может быть рассмотрена как N-строка по массиву M-location и найти общие местоположения (например, столбцы) и т. Д. Я предполагаю, что это можно сделать с помощью пары *apply строк, чтобы сравнить каждый столбец в одном массиве с столбцами другого, но надеялся на что-то более быстрое или аккуратное.Как выполнить пересечение, объединение и т. Д. На упорядоченных парах?

ответ

3

Существует пакет «устанавливает», но самое простое решение было бы использовать базовый набор операций: union,, intersect и setdiff по результатам paste с сепаратором, такого как "_". Если они представлены как «числовые» значения, которые вы, возможно, потребуется сделать decsions о том, что на самом деле означает „равенство“ и что некоторые round -ную или trunc -cation могут быть необходимы.

Другая мысль, что реализация может быть более самостоятельной -documenting в расположении столбцов вы охарактеризовали использовать функцию «plyr»:. colwise Я не преданный пользователя методов plyr, но это, как представляется, как он может начать:

colpastefn <- colwise(function(...){paste(... , sep="_")) 

Хотя описание функция предполагает, что она должна работать как отдельная функция на кадре данных, все проиллюстрированные варианты использования: ddply.

+0

Работы для меня. Я, конечно же, согласен с тем, что умный экспериментатор :-) хотел бы «урезать» свои ценности, прежде чем решать, какие места были идентичны. Я проверю этот ответ, если кто-то не придумает что-то впечатляющее в ближайшем будущем. –

Смежные вопросы