R:如何归纳类别?

R: How to summarize categories?

我有 60 个生命形式类别(称为 CAT)(熊、老虎、鲸鱼、树木等),我想为它们分配 10 个摘要类别(称为主题)。

> dt <- fread("lifeforms.csv")
> head(dt)
      CAT COUNT
1:  bears    10
2: tigers     3
3: whales     9

如果不是那么多,我会简单地使用:

dt$THEME[dt$CAT=="tigers" | dt$CAT=="bears"]="Mammals"

但是对于我的 60 个不同的 CAT 值和 10 个主题来说,这花费的时间太长而且太乱了。我在另一个 data.table:

中有 "lookup" table
> catthemes <- fread("catthemes.csv")
> catthemes
      CAT   THEME
1:  bears Mammals
2: tigers Mammals

请问如何操作?

CAT <- c("bears", "tigers", "whales", "lizards")
COUNT <- c(10, 3, 9, 15)
THEME <- c("Mammals", "Mammals", "Mammals", "Reptiles")

lifeforms <- data.frame(CAT, COUNT)
catthemes <- data.frame(CAT, THEME)


new_lifeforms <- merge(lifeforms, catthemes, by="CAT")

      CAT COUNT    THEME
1   bears    10  Mammals
2 lizards    15 Reptiles
3  tigers     3  Mammals
4  whales     9  Mammals

一个选项使用inner_join

library(dplyr)
inner_join(lifeforms, catthemes, by = 'CAT')