如何对列进行分组,并将另一列分组以在R中生成列联表

时间:2018-05-31 02:27:11

标签: r database datatable chi-squared contingency

我需要将列“Estrato”1和2分为低,3,4,5为中,6为高和其他,考虑列“Callevive”colum“Estrato”的格式是因子。生成像图像中的列联表。

 enter code here > head(datos17,25)
       Estrato                Callevive
    1        2 Moderadamente Satisfecho
    2        4 Moderadamente Satisfecho
    3        3 Moderadamente Satisfecho
    4        0 Moderadamente Satisfecho
    5        3 Moderadamente Satisfecho
    6        3 Moderadamente Satisfecho
    7        3 Moderadamente Satisfecho
    8        3 Moderadamente Satisfecho
    9        3 Moderadamente Satisfecho
    10       2 Moderadamente Satisfecho
    11       3 Moderadamente Satisfecho
    12       2 Moderadamente Satisfecho
    13       2 Moderadamente Satisfecho
    14       3 Moderadamente Satisfecho
    15       2 Moderadamente Satisfecho
    16       2           Muy Satisfecho
    17       2       Un Poco Satisfecho
    18       3 Moderadamente Satisfecho
    19       2 Moderadamente Satisfecho
    20       2 Moderadamente Satisfecho
    21       2           Muy Satisfecho
    22       2           Muy Satisfecho
    23       2           Muy Satisfecho
    24       2           Muy Satisfecho
    25       5 Moderadamente Satisfecho

enter image description here

1 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

library(tidyverse);
df %>%
    mutate(group = cut(
        Estrato,
        breaks = c(-1, 2, 5, Inf),
        labels = c("low", "medium", "high"))) %>%
    group_by(group, Callevive) %>%
    tally() %>%
    spread(Callevive, n)
## A tibble: 2 x 4
## Groups:   group [2]
#  group  `Moderadamente Satisfecho` `Muy Satisfecho` `Un Poco Satisfecho`
#  <fct>                       <int>            <int>                <int>
#1 low                             8                5                    1
#2 medium                         11               NA                   NA

说明:我们将Estrato中的条目添加到low0,1,2),medium3,4,5)和high({{ 1}})组,然后使用>6tally输出列联表。

样本数据

spread