У меня есть фрейм данных с именем, как Data, который имеет следующие элементы:Классификация данных в ведрах
Model Garage City Unit.Price Invoice.Date Components
Hyundai A NY 500 31/12/2016 HL
Honda B NJ 700 31/12/2016 TL
Porsche A NY 800 30/12/2016 TL
BMW B NJ 800 30/12/2016 HL
BMW A NJ 700 31/12/2016 HL
Porsche B NY 800 30/12/2016 TL
Honda A NY 400 30/12/2016 TL
Honda A NY 500 30/12/2016 HL
Honda B NY 600 30/12/2016 HL
Honda A NY 200 29/12/2016 TL
Honda A NY 300 29/12/2016 HL
Я хочу вывод данных разбивается на автомобили отсортирован Invoice.Date
так, что текущая стоимость захватывается первым.
Ex:Honda
Components GarageA GarageB
HL 500 600
TL 400 700
Это, как я начал:
Category <- as.data.frame(c("BMW","Honda","Porsche","Hyundai"))
for(i in 1:nrow(Category))
{
m <- Category[i,1]
X <- subset(Data,Model==m)
X <- Data[order(Data$Invoice.Date,decreasing = T),]
Pivot_A<-dcast(X,Name~Garage,value.var = "Unit.Price",function(x) length((x)))
write.csv(Pivot,file = paste(X,"Cars.csv",sep = "_"))
}
Единственная проблема, я получаю на карту правильную цену за единицу. Есть ли какой-либо код или функция для этого с dcast
? dcast
имеет опции sum
, count
. Что, если я хочу точную сумму, а не sum
, average
.