gpt4 book ai didi

重命名分类级别以减少级别数

转载 作者:行者123 更新时间:2023-12-05 02:09:52 27 4
gpt4 key购买 nike

我有一个分类列,它在大约 78000 条记录的数据集中有大约 1200 个级别。我想根据发生次数降低级别。例如。 -:

  • 所有出现次数超过 2000 次的级别都重命名为“A”。
  • 所有级别出现次数超过 1000 次但少于 2000 次重命名为“B”
  • 所有级别出现次数超过 900 次但少于 1000 次重命名为“C”

等等。

我不想将不常出现的关卡分组到“其他”中,因为它会隐藏很多重要的关卡。
以下是数据框示例。

df=data.frame(
ID = c(1:10),
Name = c("Jack", "Mike","Jack", "Mike","Jack", "Mike", "Tom", "Tom", "Smith", "Tony")
)

在这里,我想通过以下方式降低“名称”列的级别:

  • 将出现次数 >=3 的所有级别重命名为“A”
  • 重命名所有级别 >=2 但 <3 次为“B”
  • 将出现 <2 次的所有级别重命名为“C”

有人可以帮我用 R 做吗?

最佳答案

我们可以使用 add_count 来计算 Name 的实例,然后使用 case_when 检查条件

library(dplyr)

df %>%
add_count(Name) %>%
mutate(NewName = case_when(n >= 3 ~'A',
n >= 2 & n < 3 ~'B',
TRUE ~'C')) %>%
select(-n, -Name)

# ID NewName
# <int> <chr>
# 1 1 A
# 2 2 A
# 3 3 A
# 4 4 A
# 5 5 A
# 6 6 A
# 7 7 B
# 8 8 B
# 9 9 C
#10 10 C

关于重命名分类级别以减少级别数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59444278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com