Вы можете попробовать это с помощью регулярных выражений, поскольку ваш «логический» вектор уже является просто строкой:
library(tidyverse)
data.frame(id = c(1,1), matrix = c("c(\"TRUE\", \"TRUE\")", "c(\"FALSE\", \"TRUE\", \"FALSE\")")) %>%
transmute(id = id,
true_num = str_count(matrix, pattern = 'T'),
false_num = str_count(matrix, pattern = 'F'),
frq_list = true_num + false_num)
#> id true_num false_num frq_list
#> 1 1 2 0 2
#> 2 1 1 2 3
Является ли это действительно хорошей идеей - это другой вопрос.