【发布时间】:2015-05-18 21:31:18
【问题描述】:
我正在尝试加入 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 中的相应日期例如,DT1 中 2013 年 1 月 3 日的所有条目都需要在附加列中包含 Tavg 13。
我尝试了以下
setkey(DT1, state, Month, Day, Year) 和 DT2 相同,后跟一个 Join 操作
DT1[DT2, nomatch=0, allow.cartesian=TRUE
但是没有用
【问题讨论】:
-
你说的“没用”是什么意思?
-
我猜你想要
DT1[DT2, Tavg := i.Tavg, allow = TRUE]。有关详细信息,请参阅this post。 -
(To: Arun) 虽然 DT1 中的某些条目是重复的,但连接的结果几乎是(DT1 的)原始重复条目的 30 倍或更多倍,并且不匹配 Tavg...跨度>
-
虽然有点小问题:
-
结果低于 ID state Month Day Year Tavg 1 IL 2013 年 2 月 1 日 7 1 IL 2013 年 2 月 2 日 13 1 IL 2013 年 2 月 2 日 13 2 IL 2013 年 2 月 1 日 6
标签: r join data.table