【发布时间】:2020-01-24 05:02:34
【问题描述】:
我有 tibble,其中col1 是可变长度的字符向量列表,col2 是指示组分配的数字向量,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:fsmust be a list
我以为我的输入是一个列表?
感谢任何人提供的任何帮助。谢谢。
【问题讨论】:
标签: r ggplot2 dplyr purrr forcats