使用forcats和purrr总结字符向量列表

人性至上

我有一点点地方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

我以为我输入的是清单?

感谢任何人提供的帮助。谢谢。

罗纳克·沙

您可以先unnest然后count

library(dplyr)
library(tidyr)

tib %>%
  unnest(col = col1) %>%
  #If needed col1 as factors
  #mutate(col1 =factor(col1)) %>%
  count(col1)

#  col1      n
#  <fct> <int>
#1 a         2
#2 b         2
#3 c         2
#4 d         3
#5 e         1

count根据基团,即col2,我们可以做

tib %>% 
  unnest(col = col1) %>% 
  mutate_at(vars(col1, col2), factor) %>%
  count(col1, col2, .drop = FALSE)

#   col1  col2      n
#   <fct> <fct> <int>
# 1 a     0         1
# 2 a     1         1
# 3 b     0         0
# 4 b     1         2
# 5 c     0         1
# 6 c     1         1
# 7 d     0         2
# 8 d     1         1
# 9 e     0         1
#10 e     1         0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用purrr:map将向量映射到键值列表

来自分类Dev

字符向量的字符列表

来自分类Dev

从嵌套列表中提取名称相同的向量,列表名称在哪里变化?使用purrr?

来自分类Dev

使用purrr将字符向量折叠为字符串

来自分类Dev

字符向量组合列表

来自分类Dev

使用purrr按向量中的值过滤

来自分类Dev

使用 purrr 在向量上递归应用函数

来自分类Dev

使用 purrr 逐行减去向量

来自分类Dev

使用Purrr导出列表

来自分类Dev

为什么不将向量和列表一起使用?

来自分类Dev

沿向量映射并使用purrr系列函数输出嵌套列表的data.frame列(或嵌套的data.frames)?

来自分类Dev

总结使用dplyr和for循环

来自分类Dev

使用 dplyr 和闪亮的总结

来自分类Dev

如何使用pipe和purrr获取列表名称和切片名称

来自分类Dev

使用summary和for循环从字符向量中获取列名

来自分类Dev

映射字符串和向量,如何使用查找

来自分类Dev

使用summary和for循环从字符向量中获取列名

来自分类Dev

使用 stringr::str_replace_all 和字符向量

来自分类Dev

使用purrr包重命名具有以指定字符开头的名称的列表元素

来自分类Dev

使用 tidyr 的字符向量

来自分类Dev

创建链接的向量和列表

来自分类Dev

我将如何使用purrr基于场景列表和仿真功能多次运行仿真

来自分类Dev

使用嵌套列表列方法和Purrr以及Tidytext :: Unnest_Tokens

来自分类Dev

将数据集拆分为嵌套的数据帧列表,然后使用 Tidyr 和 Purrr 进行传播

来自分类Dev

总结使用Java API流嵌套列表

来自分类Dev

列表列表中的R和向量

来自分类Dev

总结和总结

来自分类Dev

使用purrr堆叠数据帧的嵌套列表

来自分类Dev

R中的向量化条件输出(也许使用purrr)?

Related 相关文章

热门标签

归档