gpt4 book ai didi

r - 使用 dplyr 创建新列

转载 作者:行者123 更新时间:2023-12-03 18:28:35 25 4
gpt4 key购买 nike

你好
我有一个 df 例如

Groups COL1 COL2
G1 1 A
G1 1 C
G1 2 A
G1 2 B
G1 5 C
G1 6 C
G2 7 B
G2 7 B
G2 8 C
G3 10 C
G3 10 A
G3 11 B
G4 12 C
G4 12 C

想法是添加一个新列 COL3
group_by(Groups, COL1) %>%
mutate(COL3 = COL1(A>B>C))

想法是,在组和 COL1 中,如果两个 COL2 值不同,如果 A 与 A 或 C 一起存在,则所有值都变为 A,如果 A 不存在但 B 在这里,则所有值变为 B,如果只有 C ,所有值都变成 C(它们已经是)。

所以 A > B 和 B > C
这是预期的输出:
Groups COL1 COL2 COL3
G1 1 A A
G1 1 C A
G1 2 A A
G1 2 B A
G1 5 C C
G1 6 C C
G2 7 B B
G2 7 B B
G2 8 C C
G3 10 C A
G3 10 A A
G3 11 B B
G4 12 C C
G4 12 C C

有人有想法吗?

最佳答案

我认为这给出了预期的结果:

df %>% 
group_by(Groups, COL1) %>%
mutate(COL2 = levels(COL2)[min(as.numeric(COL2))])
#> # Groups: Groups, COL1 [9]
#> Groups COL1 COL2
#> <fct> <int> <chr>
#> 1 G1 1 A
#> 2 G1 1 A
#> 3 G1 2 A
#> 4 G1 2 A
#> 5 G1 5 C
#> 6 G1 6 C
#> 7 G2 7 B
#> 8 G2 7 B
#> 9 G2 8 C
#> 10 G3 10 A
#> 11 G3 10 A
#> 12 G3 11 B
#> 13 G4 12 C
#> 14 G4 12 C

关于r - 使用 dplyr 创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62063884/

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