У меня есть тиббл, где col1
- это список векторов символов переменной длины, а col2
- это вектор чисел c, обозначающий групповое назначение, либо 1, либо 0. Я хочу сначала преобразовать все векторы символов. в списке (col1
) к факторам, а затем объедините все уровни факторов по всем этим факторам, чтобы в итоге я смог получить подсчет количества для каждого уровня фактора. Для приведенных ниже примеров данных это будет означать, что подсчет будет следующим:
в целом:
level, count
"a", 2
"b", 2
"c", 2
"d", 3
"e", 1
для группы = 1:
level, count
"a", 1
"b", 2
"c", 1
"d", 1
"e", 0
для группы = 0:
level, count
"a", 1
"b", 0
"c", 1
"d", 2
"e", 1
Конечная цель состоит в том, чтобы иметь возможность получить общее количество каждого факторного уровня c("a","b","c","d","e")
и построить их по переменной группировки.
Вот некоторый код, который мог бы улучшить контекст моей проблемы:
library(forcats)
library(purrr)
library(dplyr)
library(ggplot2)
tib <- tibble(col1=list(c("a","b"),
c("b","c","d"),
c("a","d","e"),
c("c","d")),
col2=c(1,1,0,0))
tib %>%
mutate(col3=map(.$col1,.f = as_factor)) %>%
mutate(col4=map(.$col3,.f = fct_unify))
К сожалению, этот код не работает. Я получаю следующую ошибку, но не знаю почему:
Error:
fs must be a list
Я думал, что мой ввод был списком?
Я ценю любую помощь кто-нибудь может предложить. Спасибо.