Actually you can make a long data frame with the lists, that way you could perform all your tasks easily, see this example:
library(tidyverse)
ActSeqList <- list()
RTList <- list()
ActSeqList[[1]]<-c("a","b","c")
ActSeqList[[2]]<-c("b","a","c","d")
ActSeqList[[3]]<-c("a","d","e","f","d")
RTList[[1]]<-c(156,40,210)
RTList[[2]]<-c(41,320,27,560)
RTList[[3]]<-c(27,99,123,710,79)
# Turn lists into a long dataframe, I'm sure there is a better way but I can't
# remember it right now
long_dataframe <- map_dfr(ActSeqList, enframe, value = "action",name = "row") %>%
bind_cols(map_dfr(RTList, enframe, value = "reaction_time", name = NULL)) %>%
mutate(row = if_else(row == 1, row_number(), NA_integer_)) %>%
fill(row, .direction = "down") %>%
group_by(row) %>%
mutate(id = group_indices()) %>%
ungroup() %>%
select(id, everything(), -row)
long_dataframe
#> # A tibble: 12 x 3
#> id action reaction_time
#> <int> <chr> <dbl>
#> 1 1 a 156
#> 2 1 b 40
#> 3 1 c 210
#> 4 2 b 41
#> 5 2 a 320
#> 6 2 c 27
#> 7 2 d 560
#> 8 3 a 27
#> 9 3 d 99
#> 10 3 e 123
#> 11 3 f 710
#> 12 3 d 79
long_dataframe %>%
add_count(action, name = "proportion") %>%
mutate(proportion = proportion / max(id))
#> # A tibble: 12 x 4
#> id action reaction_time proportion
#> <int> <chr> <dbl> <dbl>
#> 1 1 a 156 1
#> 2 1 b 40 0.667
#> 3 1 c 210 0.667
#> 4 2 b 41 0.667
#> 5 2 a 320 1
#> 6 2 c 27 0.667
#> 7 2 d 560 1
#> 8 3 a 27 1
#> 9 3 d 99 1
#> 10 3 e 123 0.333
#> 11 3 f 710 0.333
#> 12 3 d 79 1
long_dataframe %>%
group_by(action) %>%
# I know this is not a vector, it is just for exemplification purposes
summarise(reaction_time = paste(reaction_time, collapse = ","))
#> # A tibble: 6 x 2
#> action reaction_time
#> <chr> <chr>
#> 1 a 156,320,27
#> 2 b 40,41
#> 3 c 210,27
#> 4 d 560,99,79
#> 5 e 123
#> 6 f 710
long_dataframe %>%
group_by(action) %>%
summarise(mean_rt = mean(reaction_time))
#> # A tibble: 6 x 2
#> action mean_rt
#> <chr> <dbl>
#> 1 a 168.
#> 2 b 40.5
#> 3 c 118.
#> 4 d 246
#> 5 e 123
#> 6 f 710
Created on 2020-01-18 by the reprex package (v0.3.0.9000)