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

标签 r dataframe rowsum

我在 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/

相关文章:

python - 基于 Python 中的另一个数据框更新数据框

python - 在python中将多个数据框合并为一个数据框

r - 转换颜色以模仿灰度打印

r - 计算不同数据框中点之间的距离

R:(中缀)运算符的两个定义之间的冲突:如何指定包?

python - 在 pandas 中转换为字符串之前进行舍入

r - 如何在函数 rowsum 中使用 'group' 参数

python - 对索引的二维数组的值求和

r - 计算一系列列的 rowMeans(变量数)

r - 使用匹配行上的另一个数据帧更新数据帧,例如使用 join 语句进行 SQL 更新