У меня есть история транзакций в кадре данных.Каждая транзакция имеет три атрибута: год, размер и цвет.
Transactions <- data.frame(Size=c("S","S","S","S","L","L","S","L"),
Color=c("R","R","R","B","R","B","B","R"),
Year=c(1,1,2,1,1,1,2,2))
Size Color Year
S R 1
S R 1
S R 2
S B 1
L R 1
L B 1
S B 2
L R 2
Итак, первая, вторая и третья транзакции: SR1, SR1 и SR2.Это три SR транзакции.Два в 1-м году и один в 2-м.
Я хотел бы получить отчет в форме df, который суммирует для каждой комбинации цвета и размера число совпадений или превышений года.Таким образом, для данных выше правильный окончательный отчет показан ниже.
Size Color Year Count
S R 1 3 (from obs 1,2,3 because there are 3 SRs Yr 1 or later)
S R 2 1 (from row 3 of transaction b/c just one SR2)
S B 1 2
S B 2 1
L R 1 2
L R 2 1
L B 1 1
L B 2 0 (Because LB2 doesn't appear in transactions.
Последовательность строк в отчете не берется из фрейма транзакции.Это полная перестановка всех уровней размера, цвета и года.В моей настоящей проблеме у меня есть df со структурой первых трех столбцов в отчете, поэтому я хотел бы иметь возможность просто добавить к нему последний столбец.Этот df без последнего col будет выглядеть так:
Report <- data.frame(Size= c("S","S","S","S","L","L","L","L"),
Color=c("R","R","B","B","R","R","B","B"),
Year= c(1,2,1,2,1,2,1,2)
)
Я бы хотел добавить последний col, но если есть способ сгенерировать его непосредственно из транзакций, это тоже хорошо.Но так как возможно, что некоторые комбинации отчетов не появляются в транзакциях, я не думаю, что это осуществимо.