@ Перли Спенсер дал вам то, что вы просили, но подробный код показывает, что это очень искаженная структура данных - с которой, я предполагаю, работать будет очень неловко.
Кроме того, вам не нужно повторять вычисления, а затем отбрасывать дубликаты, поскольку вы можете напрямую получить простые структуры.
Обратите внимание, что это уничтожает исходный набор данных, поэтому сохранение этого оригинала всегда будет хорошей идеей.Кроме того, мы не можем комментировать, какие у вас могут быть другие переменные.
Один или оба из этих макетов, вероятно, будут как или более полезными.
clear
input str6 (name commodity) amount
Alex apple 5
Ben orange 10
Chris apple 25
Alex orange 10
Alex apple 10
Chris orange 10
Ben apple 5
Chris orange 10
end
collapse (sum) amount, by(name commodity)
list, sepby(name)
+---------------------------+
| name commod~y amount |
|---------------------------|
1. | Alex apple 15 |
2. | Alex orange 10 |
|---------------------------|
3. | Ben apple 5 |
4. | Ben orange 10 |
|---------------------------|
5. | Chris apple 25 |
6. | Chris orange 20 |
+---------------------------+
reshape wide amount, i(name) j(commodity) string
list
+-----------------------------+
| name amoun~le amoun~ge |
|-----------------------------|
1. | Alex 15 10 |
2. | Ben 5 10 |
3. | Chris 25 20 |
+-----------------------------+