Я хотел бы преобразовать следующие примеры данных на основе вымышленного примера торговых опросов. Подумайте, что страна A заявляет, что она экспортирует в страну B (строка 2, экспорт = 1), а страна B говорит, что она не импортирует из A (строка 4, импорт = 0) и наоборот. Теперь я хочу получить максимальные значения (= 1) для всех этих совпадений в наборе данных, т. Е. В этом случае Import в строке 4 будет = 1).R: Социальная сеть - максимальные значения на основе условий в разных столбцах и строках
> df <- data.frame("Sender" = c("A", "A", "A", "B", "B", "B", "C", "C", "C"),
+ "Receiver" = c("A", "B", "C", "A", "B", "C", "A", "B", "C"),
+ "Export"= c(0,1,0,0,0,0,0,0,0),
+ "Import" = c(0,1,1,0,0,1,0,0,0))
> df
Sender Receiver Export Import
1 A A 0 0
2 A B 1 1
3 A C 0 1
4 B A 0 0
5 B B 0 0
6 B C 0 1
7 C A 0 0
8 C B 0 0
9 C C 0 0
Решение должно быть
Sender Receiver Export Import Export_MAX Import_MAX
1 A A 0 0 0 0
2 A B 1 1 1 1
3 A C 0 1 0 1
4 B A 0 0 1 1
5 B B 0 0 0 0
6 B C 0 1 0 1
7 C A 0 0 1 0
8 C B 0 0 1 0
9 C C 0 0 0 0
Я искал много способов, чтобы сделать это в этом форуме и в других местах, но не смог найти решение до сих пор. Я подумывал о чем-то вроде применения максимальной функции в столбцах «Импорт» & «Экспортировать», при условии значений, указанных в «Отправителе» & «Приемник», но я не понял, насколько это возможно сообщить здесь код.
Есть идеи? Ваш совет очень ценится.