gpt4 book ai didi

r - 基于多个键和重复条目加入 R 中的两个 data.tables

转载 作者:行者123 更新时间:2023-12-01 23:13:11 26 4
gpt4 key购买 nike

我试图在 R 基础上加入两个 data.tables 并使用多个 setkeys 并且它们有重复的条目。举个例子

>DT1
ID state Month Day Year
1 IL Jan 3 2013
1 IL Jan 3 2014
1 IL Jan 3 2014
1 IL Jan 10 2014
1 IL Jan 11 2013
1 IL Jan 30 2013
1 IL Jan 30 2013
1 IL Feb 2 2013
1 IL Feb 2 2014
1 IL Feb 3 2013
1 IL Feb 3 2014

>DT2
state Month Day Year Tavg
IL Jan 1 2013 13
IL Jan 2 2013 19
IL Jan 3 2013 22
IL Jan 4 2013 23
IL Jan 5 2013 26
IL Jan 6 2013 24
IL Jan 7 2013 27
IL Jan 8 2013 32
IL Jan 9 2013 36
... ... .. ... ...
... ... .. ... ...
IL Dec 31 2013 33

我想将 DT2 的“Tavg”值添加到 DT1 中的相应日期。例如,2013 年 1 月 3 日 DT1 中的所有条目都需要在附加列中包含 Tavg 13。

我尝试了以下 setkey(DT1, state, Month, Day, Year)和 DT2 相同,然后是 Join 操作 DT1[DT2, nomatch=0, allow.cartesian=TRUE但它没有用

最佳答案

只是帮助了一个 friend (他找不到一个好的 Stack Overflow 答案)所以我认为这个问题需要一个更完整的“玩具”答案。

这是几个带有一个不匹配键的简单数据表:

dt1 <- data.table(a = LETTERS[1:5],b=letters[1:5],c=1:5)
dt2 <- data.table(c = LETTERS[c(1:4,6)],b=letters[1:5],a=6:10)

这里有几个多键合并选项:
merge(dt1,dt2,by.x=c("a","b"),by.y=c("c","b")) #Inner Join
merge(dt1,dt2,by.x=c("a","b"),by.y=c("c","b"),all=T) #Outer Join

setkey(dt1,a,b)
setkey(dt2,c,b)

dt2[dt1] #Left Join (if dt1 is the "left" table)
dt1[dt2] #Right Join (if dt1 is the "left" table)

关于r - 基于多个键和重复条目加入 R 中的两个 data.tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29082406/

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