gpt4 book ai didi

r - 如何匹配不同数据帧中具有不同频率的两列?

转载 作者:行者123 更新时间:2023-12-05 09:26:40 25 4
gpt4 key购买 nike

我有两个数据框:

df1 = data.frame(ID = c(1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5,5,5,5), stringsAsFactors = F)

df2 = data.frame(Date = c("2000-01-01","2001-01-1","2002-01-01","2003-01-01","2004-01-01"), stringsAsFactors = F)

现在,我想通过以下方式将 df2 中的日期与 df1 中的 ID 进行匹配:


ID Date
1 1 2000-01-01
2 1 2000-01-01
3 1 2000-01-01
4 1 2000-01-01
5 1 2000-01-01
6 1 2000-01-01
7 1 2000-01-01
8 2 2001-01-01
9 2 2001-01-01
10 2 2001-01-01
11 2 2001-01-01
12 3 2002-01-01
13 3 2002-01-01
14 3 2002-01-01
15 4 2003-01-01
16 4 2003-01-01
17 5 2004-01-01
18 5 2004-01-01
19 5 2004-01-01
20 5 2004-01-01

基本上,我假设“ID 1 == 2000-01-01”并希望在 ID 中重复出现 1 的次数。其余逻辑相同。

谁能帮帮我?

谢谢!

最佳答案

使用cbind:

cbind(df1, df2[df1$ID,])
# ID Date
#1 1 2000-01-01
#2 1 2000-01-01
#3 1 2000-01-01
#4 1 2000-01-01
#5 1 2000-01-01
#6 1 2000-01-01
#7 1 2000-01-01
#8 2 2001-01-1
#9 2 2001-01-1
#10 2 2001-01-1
#11 2 2001-01-1
#12 3 2002-01-01
#13 3 2002-01-01
#14 3 2002-01-01
#15 4 2003-01-01
#16 4 2003-01-01
#17 5 2004-01-01
#18 5 2004-01-01
#19 5 2004-01-01
#20 5 2004-01-01

合并:

merge(df1, df2, by.x="ID", by.y=0)
# ID Date
#1 1 2000-01-01
#2 1 2000-01-01
#3 1 2000-01-01
#4 1 2000-01-01
#5 1 2000-01-01
#6 1 2000-01-01
#7 1 2000-01-01
#8 2 2001-01-1
#9 2 2001-01-1
#10 2 2001-01-1
#11 2 2001-01-1
#12 3 2002-01-01
#13 3 2002-01-01
#14 3 2002-01-01
#15 4 2003-01-01
#16 4 2003-01-01
#17 5 2004-01-01
#18 5 2004-01-01
#19 5 2004-01-01
#20 5 2004-01-01

关于r - 如何匹配不同数据帧中具有不同频率的两列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73632125/

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