WedX - журнал о программировании и компьютерных науках

сравнение команд слияния между R и Stata

Будучи пользователем R, я сейчас изучаю Stata, используя этот ресурс , и я озадачен командой merge.

В R мне не нужно беспокоиться о неправильном объединении данных, потому что он все равно объединяет все. Мне не нужно беспокоиться, если общие столбцы содержат какие-либо дубликаты, потому что фрейм данных Y будет сливаться с каждой из дублированных строк в фрейме данных X. (используя all=FALSE в merge)

Но для Stata мне нужно удалить повторяющиеся строки из X, прежде чем приступить к объединению.

Предполагается ли в Stata, что для продолжения merge общий столбец в основной таблице должен быть уникальным?

07.09.2011

  • для проблем слияния в Stata я считаю MMERGE действительно полезным. 07.09.2011
  • К вашему сведению: начиная с Stata 11 функции mmerge были включены в официальную команду merge. 08.09.2011

Ответы:


1

Ответ на ваш вопрос — нет. Я попытаюсь объяснить, почему.

Упомянутая вами ссылка охватывает только один тип слияния, который возможен в Stata, а именно слияние «один ко многим».

merge 1:m varlist using filename

Возможны и другие типы слияния:

Слияние один к одному для указанных ключевых переменных

merge 1:1 varlist using filename

Слияние «многие к одному» для указанных ключевых переменных

merge m:1 varlist using filename

Слияние «многие ко многим» с указанными ключевыми переменными

merge m:m varlist using filename

Слияние один к одному путем наблюдения

merge 1:1 _n using filename

Подробности, пояснения и примеры можно найти в help merge.

Если вы не знаете, уникальны ли наблюдения в наборе данных, вы можете выполнить следующую проверку:

bysort idvar: gen N = _N

ta N

Если вы найдете значения N больше 1, вы знаете, что наблюдения не уникальны по отношению к idvar.

На самом деле это новый синтаксис команды merge, представленный в Stata 11. До Stata 11 команда слияния была немного проще. Вам просто нужно было отсортировать свои данные, а затем вы могли бы сделать:

merge varlist using filename

Кстати, вы все еще можете использовать этот старый синтаксис в Stata 11 или выше.

07.09.2011
  • Хорошая работа с довольно исчерпывающим ответом. Обратите внимание, что старый синтаксис был проще, но они изменили его, потому что он вызывал всевозможные трудно обнаруживаемые проблемы, когда ваши данные не соответствовали ожиданиям. Использование старого синтаксиса по-прежнему работает, но возвращает предупреждение. 07.09.2011
  • @gsk3: Хороший комментарий. Лично мне потребовалось некоторое время, чтобы принять новый синтаксис слияния в моих программах и заметках. Новый синтаксис выглядит и кажется на первый взгляд более сложным. Однако это быстро окупится, поскольку может привлечь ваше внимание к проблемам в данных. 07.09.2011
  • Это заслуга Stata в том, что они сделали что-то, чтобы сделать их язык более трудным для понимания поначалу, но лучше в долгосрочной перспективе. В частности, поскольку большинство их клиентов не имеют опыта программирования и, следовательно, вряд ли сразу поймут, насколько такие вещи (возможно, наиболее похожие на строгую типизацию) улучшают их жизнь :-) 07.09.2011
  • Команда isid предлагает более простой способ проверить, является ли переменная уникальным идентификатором. 30.06.2013

  • 2

    joinby, unmatched(both) — это команда, соответствующая команде R merge.

    В частности, слияние m:m НЕ выполняет слияние «многие ко многим» (т. е. полное соединение), вопреки тому, что подразумевает документация.

    05.06.2015
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]