Я сделал редактирование после того, как понял, что моего кода недостаточно для объяснения проблемных приложений.Включить третью переменную в таблицу
У меня есть кадр данных, в том числе четыре колонки
purchaseId <- c("abc","xyz","def","ghi")
product <- c("a","b","c","a")
quantity <- c(1,2,2,1)
revenue <- c(500,1000,300,500)
t <- data.frame(purchaseId,product, quantity, revenue)
table(t$product,t$quantity)
Выполнение этого запроса
table(t$product,t$quantity)
возвращает таблицу с указанием, сколько раз происходит каждая комбинация
1 2
a 2 0
b 0 1
c 0 1
Что я хотел бы чтобы сделать это как произведение, так и количество в виде строк и столбцов (как показано выше), но с повторением место в качестве фактического значения.
Результат должен выглядеть следующим образом:
1 2
a 1000 0
b 0 1000
c 300 0
Это позволило бы мне создать таблицу, в которой я мог бы экспортировать в CSV-файл.
Может ли кто-нибудь помочь мне дальше?
редактировать - код предлагаемых ниже выдает следующее сообщение об ошибке о фактическом наборе данных 140K строк:
Error: dims [product 21525] do not match the length of object [147805]
Другие идеи?
Конечно, приведенный выше примерный пример представляет собой упрощенную версию фактических данных, которые я использую, но идея такая же.
Благодарим вас, С уважением.
'таблица (товар, количество) * выручка'? – etienne
@ Решение etienne очень круто, также то, что будет работать, это функция recast из 'data.table' или' reshape2'. 'reshape2 :: recast (t, product ~ quantity, measure.var =" доход ", fill = 0)' – Chris