Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R两个数据表的笛卡尔积_R_Data.table - Fatal编程技术网

R两个数据表的笛卡尔积

R两个数据表的笛卡尔积,r,data.table,R,Data.table,我这里描述了两个数据帧 Table1 ID AMOUNT ATTRIBUTE_2 K.20141107.003 1 DACH K.20141127.048 197,1 E_FUT K.20141107.003 0,35 E_INTRA K.20141127.048 30 F1BY K.20141127.048 131,4 ECC_E K.20141107.003 0,03 CCP Table2 ID MONTH M_VALUE ATTRIBUTE

我这里描述了两个数据帧

Table1
ID  AMOUNT  ATTRIBUTE_2
K.20141107.003  1   DACH
K.20141127.048  197,1   E_FUT
K.20141107.003  0,35    E_INTRA
K.20141127.048  30  F1BY
K.20141127.048  131,4   ECC_E
K.20141107.003  0,03    CCP

Table2
ID  MONTH   M_VALUE ATTRIBUTE_1 CLOSE_DATE
K.20141127.048  01.01.2015  0,084931507 MATT    01.11.2014
K.20141127.048  01.02.2015  0,076712329 MATT    01.11.2014
K.20141127.048  01.03.2015  0,084817352 MATT    01.11.2014
K.20141127.048  01.04.2015  0,082191781 MATT    01.11.2014
K.20141127.048  01.05.2015  0,084931507 MATT    01.11.2014
K.20141127.048  01.06.2015  0,082191781 MATT    01.11.2014
K.20141127.048  01.07.2015  0,084931507 MATT    01.11.2014
K.20141127.048  01.08.2015  0,084931507 MATT    01.11.2014
K.20141127.048  01.09.2015  0,082191781 MATT    01.11.2014
K.20141127.048  01.10.2015  0,085045662 MATT    01.11.2014
K.20141127.048  01.11.2015  0,082191781 MATT    01.11.2014
K.20141127.048  01.12.2015  0,084931507 MATT    01.11.2014
K.20141107.003  01.11.2014  1   IN  01.11.2014
我想在ID上合并这两个表,并根据表1中的(ID,ATTRIBUTE_2)和表2中的(ID,MONTH)得到表的笛卡尔积

我尝试了以下不起作用的方法:

TABLE1[ , merge(TABLE1, TABLE2, by = "ID", all = FALSE), by = "ATTRIBUTE2"]
我想要得到的结果如下:

ID  MONTH   M_VALUE ATTRIBUTE_1 CLOSE_DATE  AMOUNT  ATTRIBUTE_2
K.20141127.048  01.01.2015  0,084931507 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.02.2015  0,076712329 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.03.2015  0,084817352 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.04.2015  0,082191781 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.05.2015  0,084931507 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.06.2015  0,082191781 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.07.2015  0,084931507 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.08.2015  0,084931507 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.09.2015  0,082191781 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.10.2015  0,085045662 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.11.2015  0,082191781 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.12.2015  0,084931507 MATT    01.11.2014  197,1   E_FUT
K.20141127.048  01.01.2015  0,084931507 MATT    01.11.2014  30  F1BY
K.20141127.048  01.02.2015  0,076712329 MATT    01.11.2014  30  F1BY
K.20141127.048  01.03.2015  0,084817352 MATT    01.11.2014  30  F1BY
K.20141127.048  01.04.2015  0,082191781 MATT    01.11.2014  30  F1BY
K.20141127.048  01.05.2015  0,084931507 MATT    01.11.2014  30  F1BY
K.20141127.048  01.06.2015  0,082191781 MATT    01.11.2014  30  F1BY
K.20141127.048  01.07.2015  0,084931507 MATT    01.11.2014  30  F1BY
K.20141127.048  01.08.2015  0,084931507 MATT    01.11.2014  30  F1BY
K.20141127.048  01.09.2015  0,082191781 MATT    01.11.2014  30  F1BY
K.20141127.048  01.10.2015  0,085045662 MATT    01.11.2014  30  F1BY
K.20141127.048  01.11.2015  0,082191781 MATT    01.11.2014  30  F1BY
K.20141127.048  01.12.2015  0,084931507 MATT    01.11.2014  30  F1BY
K.20141127.048  01.01.2015  0,084931507 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.02.2015  0,076712329 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.03.2015  0,084817352 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.04.2015  0,082191781 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.05.2015  0,084931507 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.06.2015  0,082191781 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.07.2015  0,084931507 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.08.2015  0,084931507 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.09.2015  0,082191781 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.10.2015  0,085045662 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.11.2015  0,082191781 MATT    01.11.2014  131,4   ECC_E
K.20141127.048  01.12.2015  0,084931507 MATT    01.11.2014  131,4   ECC_E
K.20141107.003  01.11.2014  1   IN  01.11.2014  1   DACH
K.20141107.003  01.11.2014  1   IN  01.11.2014  0,35    E_INTRA
K.20141107.003  01.11.2014  1   IN  01.11.2014  0,03    CCP
请注意,在表1中,ID K.20141127.048的每个组合(ID,属性_2)都会重复12次。
我可以通过for循环解决这个问题,但我更喜欢更优雅的解决方案。有人知道如何得到最终结果吗?

在dplyrHi中使用full_join,我只是检查一下,但我认为merge(表1,表1,allow.cartesian=TRUE)应该可以完成这项工作。它与merge(表1,表1,allow.cartesian=TRUE)一起工作。笛卡尔的条件是关键。谢谢你的帮助。你应该在问题中使用data.table这个词(而不是“data.frame”)。。。还可以设置标签
data.table
。或者,你知道,如果你想要的话,可以使用Jan的函数