gpt4 book ai didi

r 在 df1 中添加列,在 df2 中添加行数(有条件)

转载 作者:行者123 更新时间:2023-12-04 09:38:03 24 4
gpt4 key购买 nike

我在 R 中有两个数据框,如下所示......我需要在 df1 中添加新列(count_orders),其中包含 df2 中的订单数(或 df2 中的买家数)。
请帮忙。

> df1
buyer city
1 A xx
2 B yy
3 C zz
> df2
order buyer item
1 1 A 1
2 2 A 2
3 3 B 1
4 4 A 2
5 5 B 1
6 6 C 3
7 7 C 4

预期输出:
> df1
buyer city count_orders
1 A xx 3
2 B yy 2
3 C zz 2

最佳答案

这是一个可能的 data.tabledf1 之间执行二进制连接的解决方案和 df2在使用 by = .EACHI 加入时计算长度时

library(data.table)  
setkey(setDT(df2), buyer)
df2[df1, list(city, count_orders = .N), by = .EACHI]
# buyer city count_orders
# 1: A xx 3
# 2: B yy 2
# 3: C zz 2

替代方法(修改@nicolas 评论)可能是(将通过引用更新 df1)
library(data.table)  
setkey(setDT(df1), buyer)
df1[setDT(df2)[, .N, keyby = buyer], count_orders := i.N]

关于r 在 df1 中添加列,在 df2 中添加行数(有条件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555977/

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