首页 > 解决方案 > 重新编码组以相应地创建摘要

问题描述

我有一个如下表的数据

Category Value
14        1
13        2
32        1
63        4
24        1
77        3
51        2
19        4
15        1
24        4
32        3
10        1
.         .
.         .
so on 

实际上我想创建一组变量,例如

C1= (14,13,24,19,77)
C2= (32,51,63,15,10)
c3= (......)
c4= (...)

这样它将创建一个数据框,例如(重新编码之类的东西)

C1  c2  c3  c4......
14  32  
13  51
24  63
15  10

在此之后我可以创建一个摘要

df<- df[!is.na(df[[cols]]), ]
sum1 <- as.data.frame(table(df[[cols]]))

最终预期输出应该像

   C1  C2 C3 ....
1  22%
2  13%
3  42%
4  15%
N  94

N 是该特定组的总计数。

标签: r

解决方案


您可以创建一个列来对来自等的各种值进行分组C1C2并赋予它们各自的值。然后我们可以得到宽格式的数据。您可以使用adorn_totalsfromjanitor来获取最后一行中添加的每一列的总和。

library(dplyr)

df %>%
  group_by(col = case_when(Category %in% C1 ~ 'C1', 
                           Category %in% C2 ~ 'C2')) %>%
  mutate(Value = row_number()) %>%
  tidyr::pivot_wider(names_from = col, values_from = Category) %>%
  janitor::adorn_totals()

推荐阅读