Функция Stata, эквивалентная group_concat

Я хотел бы объединить в группу категориальную переменную. Пример:
погладить
1 а
1 б
1 б
2 а
2 а

Объединение групп должно привести к:
погладить
1 абб
2 аа

В Mysql это будет сделано с помощью group_concat:

SELECT pat, GROUP_CONCAT(x SEPARATOR '-') y FROM tb GROUP BY pat

Также было бы хорошо, если бы функция могла объединять различные упорядоченные значения. В приведенном выше примере результат должен быть:
погладить
1 час
2 а

С MySQL:

SELECT pat, GROUP_CONCAT(DISTINCT x ORDER BY x SEPARATOR '-') y FROM tb GROUP BY pat

1 ответ

Решение

Обратите внимание, что это сократит набор данных до меньшего количества наблюдений.

  bysort pat y: keep if _n == 1
  by pat: gen Y = y[1]
  by pat: replace Y = Y[_n-1] + "-" + y if _n > 1
  by pat: keep if _n == _N
Другие вопросы по тегам