gpt4 book ai didi

R 使用 dplyr 将行添加到分组的 df

转载 作者:行者123 更新时间:2023-12-02 00:57:10 24 4
gpt4 key购买 nike

我有一个分组df我想在与 df 中的变量( item_code )匹配的组的顶部添加额外的行。
额外的行没有 id柱子。附加行不应在 df 的组内重复.

示例数据:

df <- as.tibble(data.frame(id=rep(1:3,each=2),
item_code=c("A","A","B","B","B","Z"),
score=rep(1,6)))



additional_rows <- as.tibble(data.frame(item_code=c("A","Z"),
score=c(6,6)))

我试过的

我找到了这篇文章并尝试应用它:
Add row in each group using dplyr and add_row()
df %>% group_by(id) %>% do(add_row(additional_rows %>%
filter(item_code %in% .$item_code)))

我得到了什么:
# A tibble: 9 x 3
# Groups: id [3]
id item_code score
<int> <fct> <dbl>
1 1 A 6
2 1 Z 6
3 1 NA NA
4 2 A 6
5 2 Z 6
6 2 NA NA
7 3 A 6
8 3 Z 6
9 3 NA NA

我在找什么:
# A tibble: 6 x 3
id item_code score
<int> <fct> <dbl>
1 1 A 6
2 1 A 1
3 1 A 1
4 2 B 1
5 2 B 1
6 3 B 1
7 3 Z 6
8 3 Z 1

最佳答案

这应该可以解决问题:

 library(plyr)

df %>%
join(subset(df, item_code %in% additional_rows$item_code, select = c(id, item_code)) %>%
join(additional_rows) %>%
subset(!duplicated(.)), type = "full") %>%
arrange(id, item_code, -score)

不确定它是否是最好的方法,但它有效

编辑:以相同的顺序获得分数添加了其他排列术语

编辑 2:好的,现在不应该根据您的评论从附加行中添加重复的行

关于R 使用 dplyr 将行添加到分组的 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53498593/

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