gpt4 book ai didi

将字符 ID 重新编码为数字 ID

转载 作者:行者123 更新时间:2023-12-02 18:26:50 25 4
gpt4 key购买 nike

我需要修改 id 变量值。示例数据如下所示:

df <- data.frame(id = c(11,21,22,"33_AS_A","33_AS_B","33_AS_X", "35_Part1","35_Part2","35_Part4","35_Part7"),
Grade= c(3,3,3, 4,4,4,5,5,5,5))

> df
id Grade
1 11 3
2 21 3
3 22 3
4 33_AS_A 4
5 33_AS_B 4
6 33_AS_X 4
7 35_Part1 5
8 35_Part2 5
9 35_Part4 5
10 35_Part7 5

我需要通过提供有序的数值而不是按顺序的文本值,将 id 重新编码为数值变量。

这是我想要的输出:

> df2
id Grade
1 11 3
2 21 3
3 22 3
4 331 4
5 332 4
6 333 4
7 351 5
8 352 5
9 353 5
10 354 5

有什么想法吗?

最佳答案

library(dplyr)
library(stringr)
df %>%
mutate(
group = str_extract(id, "[0-9]+")
) %>%
group_by(group) %>%
mutate(id = as.numeric(paste0(group, if(n() > 1) row_number() else ""))) %>%
ungroup() %>%
select(-group)
# # A tibble: 10 × 2
# id Grade
# <dbl> <dbl>
# 1 11 3
# 2 21 3
# 3 22 3
# 4 331 4
# 5 332 4
# 6 333 4
# 7 351 5
# 8 352 5
# 9 353 5
#10 354 5

关于将字符 ID 重新编码为数字 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70010974/

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