首页 > 解决方案 > 在R中按组计算多列的出现

问题描述

我有一个看起来像这样的df:

Room  Item  Red Square  
Basement  Ball  TRUE  FALSE
Basement  Basket  TRUE  TRUE
Basement  Table FALSE TRUE
Basement  Desk TRUE TRUE

我想计算 Square、Red 和 square + red 项目的数量,所以最终的 DF 看起来像这样:

Room Square Red Both
Basement 1 1 2

我试过

df %>% 
group_by(Room, Square, Red) %>%
count()

给我计算类别,但我不知道如何按照我的意愿格式化它。

标签: rdplyrdata.table

解决方案


在此管道中,必须使用不同的名称命名新创建的变量,以便在使用 时summarise,第二个和第三个变量不使用新创建的变量Square。我稍后在同一管道中重命名它们。

df %>% 
  group_by(Room) %>% 
  summarise(
    Square_new = sum(Square & !Red),
    Red_new = sum(Red & !Square),
    Both_new = sum(Square & Red)
  ) %>% 
  rename(Square = Square_new, Red = Red_new, Both = Both_new)

输出

# A tibble: 1 x 4
#   Room     Square   Red  Both
#   <chr>     <int> <int> <int>
# 1 Basement      1     1     2

推荐阅读