У меня есть набор растений (A
, B
, C
), которые могут выступать как отправителями, так и получателями, но на практике не все фактически отправляют или получают.Мне нужно заполнить пропущенные соединения, чтобы сделать матрицу данных «квадратной» (или «квадратичной»), а не ее прямоугольник.
Вот мои данные:
clear
input str1 sender str1 receiver value
A B 100
A C 200
B A 100
end
Stata's *Команда 1009 * почти выполняет то, что я хочу:
fillin sender receiver
drop if sender == receiver
list
+-------------------------------------+
| sender receiver value _fillin |
|-------------------------------------|
1. | A B 100 0 |
2. | A C 200 0 |
3. | B A 100 0 |
4. | B C . 1 |
+-------------------------------------+
Ниже приведен ожидаемый результат:
+-----------------------------+
| sender receiver value |
|-----------------------------|
1. | A B 100 |
2. | A C 200 |
3. | B A 100 |
4. | B C . |
5. | C A . |
6. | C B . |
+-----------------------------+
Есть ли простой способ сделать это?