made a table with the results of a loop

Whit a loop i made this 4 tibbles:

[1] "var1"
# A tibble: 1 x 2
      n   `%`
  <int> <dbl>
1   250  100.
[1] "var2"
# A tibble: 1 x 2
      n   `%`
  <int> <dbl>
1   146  58.6
[1] "var3"
# A tibble: 1 x 2
      n   `%`
  <int> <dbl>
1   201  80.7
[1] "var4"
# A tibble: 1 x 2
      n   `%`
  <int> <dbl>
1   225  90.4

How can I do for make a tibble like this:

# A tibble: 4 x 3
  var       n   `%`
  <chr> <dbl> <dbl>
1 var1    250  100  
2 var2    146  58.6
3 var3    201  80.7
4 var4    225  90.4

Using previous code:

library(tidyverse)

df <- tribble(
  ~id, ~A,     ~B,     ~C,     ~vars,
  
  1, FALSE, TRUE,  FALSE, "team5",
  2, TRUE,  FALSE, TRUE,  "team9",
  3, FALSE,TRUE,  FALSE, "team7",
  4, FALSE, FALSE, FALSE,"team2",
  5, TRUE,  TRUE,  TRUE,  "team8",
  6, FALSE, TRUE,  FALSE, "team2",
  7, TRUE,  TRUE,  FALSE,"team2",
  8, FALSE, FALSE, FALSE, "team6",
  9, TRUE,  TRUE,  TRUE,  "team6",
  10, FALSE, FALSE, FALSE, "team7",
  11, TRUE,  FALSE, TRUE,  "team6",
  12, TRUE,  TRUE,  FALSE, "team7",
  13, FALSE, TRUE,  TRUE,  "team9",
  14, TRUE,  FALSE, TRUE,  "team1",
  15, FALSE, FALSE, FALSE, "team4",
)


df_long <- df %>% 
  pivot_longer(cols = c("A", "B", "C")) 

tot <- length(unique(df_long$vars))
ft <- unique(df_long$name)

table <- tibble(team = NULL,
                n = NULL,
                `%` = NULL)

for(i in ft){
  
  a <- df_long %>% 
    filter(name == i & value == T) %>% 
    select(vars) %>% 
    unique() %>% 
    count() %>% 
    mutate(`%` = n/tot*100,
           team = i) %>% 
    relocate(team)
  
 table <- rbind(table, a)
  
}

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.