I have this data set
structure(list(col2 = c(1, 1, 2, 3, 1, 2, 2, 3, 1, 2), col1 = c("R",
"R", "R", "R", "R", "L", "R", "R", "R", "R")), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -10L), groups = structure(list(
col1 = c("L", "R", "R", "R"), col2 = c(2, 1, 2, 3), .rows = structure(list(
6L, c(1L, 2L, 5L, 9L), c(3L, 7L, 10L), c(4L, 8L)), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -4L), .drop = TRUE))
what I would like to do is just add only a final row under 'n' column (the new created with dplyr) wit column total. I have tried with this code, but I get total for every columns.
library(janitor)
data %>%
group_by(col1, col2) %>%
mutate(col1 = recode(col1, 'R (change file name)' = 'R',
'L (change name e data EEG file)' = 'L')) %>%
summarise(n = n()) %>%
adorn_totals("row")
I would be eager to learn how to fix it or other strategy for this purpose.
Thanks
Here is how we could do it with adorn_totals
:
adorn_totals
has a ...
argument: Using ... requires specifying values for the other arguments, even if they're empty, thus the ,,,, below to accept the default values for those arguments. See original answer by @Sam Firke Calculating and Appending Column Totals of Select Columns in a Data Frame in R
library(dplyr)
library(janitor)
df %>%
group_by(col1, col2) %>%
mutate(col1 = recode(col1, 'R (change file name)' = 'R',
'L (change name e data EEG file)' = 'L')) %>%
summarise(n = n()) %>%
adorn_totals("row",,,,n)
col1 col2 n
L 2 1
R 1 4
R 2 3
R 3 2
Total - 10