Satish
Satish

Reputation: 11

Order() in R - argument is missing, with no default

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

Answers (2)

user2554330
user2554330

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

Mouad_Seridi
Mouad_Seridi

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

Related Questions