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')
我有 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')