Функция 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