gpt4 book ai didi

r - 匹配并找到R中最早的值

转载 作者:行者123 更新时间:2023-12-04 09:14:59 25 4
gpt4 key购买 nike

我有两张表,一张是销售历史,另一张是关键客户。

销售历史表如下所示(包含 500,000 行):

Client No.   Transaction Date   Sales Amount
abc 1/12/2014 100
def 2/28/2014 200
hij 3/01/2014 300
abc 2/18/2014 400
abc 5/26/2014 500
xyz 7/15/2014 600
def 8/23/2014 700
hij 9/19/2014 800

Key Clients 表如下所示:

Client No.
abc
def
xyz

现在我想用 R 做的是,基于 Key Clients 表,我需要创建一个与 Sales History 表中最早的 Sales Amount 匹配的新表。期望的结果如下所示:

Client No.  Earliest Sales Amount
abc 100
def 200
xyz 600

最佳答案

我也会推荐使用 data.tables binary join,但我会使用 .EACHI 来做这个

library(data.table)
setkey(setDT(df)[, Transaction.Date := as.IDate(Transaction.Date, "%m/%d/%Y")], Client.No.)
df[key, .(Earliest.Sales.Amont = Sales.Amount[which.min(Transaction.Date)]), by = .EACHI]
# Client.No. Earliest.Sales.Amont
# 1: abc 100
# 2: def 200
# 3: xyz 600

首先,我们将使用 setDT 将您的数据集 (df) 转换为 data.table 类,转换 Transaction。 DateDate 类,这样 R 在查找 最小日期 时会理解您的意思,然后通过 Client.No 键入它。 以执行 二元连接(这对于像您这样的大数据集非常有效)。然后,在对键表 (key) 执行 二元连接 时,我们将使用 by = .EACHI 来定位 Sale.Amount 在数据集中最早的日期内。

关于r - 匹配并找到R中最早的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488492/

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