Reputation: 11
Here is the gist of my problem. I inner joined two dataframes. Called it MergedData. I wanted to group the data by customer and sales. This gives me what I want -
data2 <- aggregate(MergedData$Purchase~ MergedData$User_ID+
MergedData$Product_Category,data = MergedData, FUN = sum)
MergedData$User_ID MergedData$Product_Category MergedData$Purchase
1 1000002 1 3267
2 1000003 1 768
3 1000005 1 4063
Now I want to sort it by MergedData$Purchase. So, I try this -
data2 <- data2[order(data2$`MergedData$User_ID`,
-data2$`MergedData$Purchase`)]
It returns me the following error -
**Error in `[.data.frame`(data2, order(data2$`MergedData$User_ID`, -data2$`MergedData$Purchase`)) :
undefined columns selected**
If I put a comma after -data2$
MergedData$Purchase, it returns me another error-
**Error in order(data2$`MergedData$User_ID`, -data2$`MergedData$Purchase`, :
argument is missing, with no default**
I am a total newbie to R. Can someone please help me troubleshoot this problem.
Upvotes: 0
Views: 434
Reputation: 44907
The problem is that you only used one index to data2
, so the result of order
is being treated as column names. Write it with a comma after order(...)
, and the order will be on the rows for all columns:
data2 <- data2[order(data2$`MergedData$User_ID`,
-data2$`MergedData$Purchase`), ]
Upvotes: 0
Reputation: 2716
no need for MergedData
, in your order
statement.
data2 <- data2[order(data2$`MergedData$User_ID`,
-data2$`MergedData$Purchase`)]
should be
data2 <- data2[order(data2$User_ID,
-data2$Purchase)]
Upvotes: 1