首页 > 解决方案 > 如何在 R 中总结和分组

问题描述

R 新手,尝试创建一些数据摘要。

test_data <- tibble(x=1:10,y=11:20, room=c("a","b","a","b","a","b","a","b","a","b"), colour=c("red","blue","green","black","red","red","blue","green","black","red"))
summary_data <- test_data %>%
  filter(room != "NA") %>%
  group_by(room) %>%
  summarise_all(funs(sum(complete.cases(.)))) %>%
  rename_all(~paste0("risk_",colnames(summary_data)))

给出:

> summary_data
# A tibble: 2 x 4
  risk_room risk_x risk_y risk_colour
  <chr>      <int>  <int>       <int>
1 a              5      5           5
2 b              5      5           5

这根本不是我想要的!我正在尝试的是:

在此处输入图像描述

或者

在此处输入图像描述

标签: rdplyr

解决方案


使用看门人和 tidyverse

library(tidyverse)
library(janitor)
test_data <- tibble(x=1:10,y=11:20, room=c("a","b","a","b","a","b","a","b","a","b"), colour=c("red","blue","green","black","red","red","blue","green","black","red"))

test_data %>%
    group_by(room, colour) %>%
    tally() %>% 
    spread(colour, n) %>%
    adorn_totals("col", name = "Count") %>%
    adorn_totals("row",name = "Total")

推荐阅读