2014-01-21 2 views
1

Мне интересно, есть ли разница между merge и операторов в SAS при использовании только 1 набора данных в качестве источника.Merge vs Set statement в SAS

Например:

data newdata; 
set olddata; 
run; 

против

data newdata; 
merge olddata; 
by identifier; 
run; 

Я не могу найти какие-либо различия в результирующих наборов данных из каждого метода.

Есть ли разница между двумя утверждениями в такой ситуации? Спасибо.

+2

Единственное, что я могу вспомнить с моей головы, - это требование сортировки по идентификатору перед оператором слияния, что сделало бы этот шаг данных бесполезным, поскольку вы можете вывести сортировку в новый набор данных. – scott

ответ

2

Там нет никакой разницы между

data a; 
set b; 
run; 

и

data a; 
merge b; 
run; 

кроме вероятного предупреждения/ошибки вы получите от заявления слияния не имея by заявление. Если вы включаете в себя заявление by в обоих случаях, то никакой разницы нет.

Слияние является на самом деле особым случаем Set, как объясняет ответ KP6. Только с одним набором данных он идентичен.