0
votes

ive grouped the data and summed the data with dplyr.

data[[1]] %>% group_by(!!sym(x_var)) %>% summarise(sum = sum(!!sym(y_var)))

I ll receive the following:

 Risk.Currency       sum
  <chr>             <dbl>     
 1 AED           0.000375 
 2 AUD           0.0131   
 3 BRL           0.00350  
 4 CAD           0        
 5 CHF           0.0137   
 6 CLP           0.000461 
 7 CNY           0.00501  
 8 COP           0.000134 
 9 CZK           0.0000972
10 DKK           0.00347 

If i try to add the arrange part nothing changes with my output.

 data[[1]] %>% group_by(!!sym(x_var)) %>% summarise(sum = sum(!!sym(y_var))) %>% arrange(desc('sum'))  

Can you help?

EDIT: here a working example with mtcars which shows the problem.

i created an empty list, because in my function i have a list of dataframes

 data <- list()
 y_var <- "hp"
 x_var <- "cyl"

 data[[1]] <- mtcars

 data[[1]] %>% group_by(!!sym(x_var)) %>% summarise(sum = sum(!!sym(y_var))) %>% arrange(desc('sum'))  

thank you Stefan

1
data[[1]] %>% group_by(!!sym(x_var)) %>% summarise(sum = sum(!!sym(y_var))) %>% arrange(desc(sum)) works right? - Ronak Shah

1 Answers

0
votes

Update: You have to use get in the arrange function.

Code

  sort_by <- 'sum'
  
  data[[1]] <- mtcars
  
  data[[1]] %>% 
    group_by(!!sym(x_var)) %>% 
    summarise(sum = sum(!!sym(y_var))) %>% 
    arrange(get(sort_by)) %>% 
    arrange(desc(sum))

Output:

# A tibble: 3 x 2
    cyl   sum
  <dbl> <dbl>
1     8  2929
2     4   909
3     6   856

Data:

data <- list()
  y_var <- "hp"
  x_var <- "cyl"