如何在具有两列相同的两个不同数据集中查找单个值基于条件

问题描述

我有两个不同的数据集,如下所示:

enter image description here

仅在以下情况下,我需要在数据集#2中添加通话量,放置量和总体积列:两个数据集中的ID和Date列均匹配。我根据数据集#1中第3列中的值来分离看涨期权,看跌期权和总计(C为看涨期权,P为看跌期权,T为总计)。

我正在运行此代码,但无法正常工作(仅显示看涨期权的示例,看跌价和总计的规则相同)。

dataset2$call_volume <- if(dataset1$optiontype== "C")
{ dataset1$volume [ match (
                          interaction(dataset2$ID,dataset2$date),interaction(dataset1$ID,dataset1$date)
                                         )]}

有人对我如何进行代码提出建议吗?非常感谢!

> dput(dataset1)
structure(list(ID = c(44652,44652,56266,56266),date = c("1997/01/02","1997/01/02","1997/01/03","1997/01/03"),`option type (C,P,T: for calls,puts,and total)` = c("C","P","T","C","T"),volume = c(34,250,284,30,1443,211,1654,4490,826,5316)),row.names = c(NA,-12L),class = c("tbl_df","tbl","data.frame"))

> dput(dataset2)
structure(list(ID = c(44652,56266
),"1997/01/04","1997/01/04"),`call volume` = c(NA,NA,NA),`put volume` = c(NA,`total volume` = c(NA,NA)),-6L),"data.frame"))

更新:两个数据集中我还有许多其他列,彼此之间有很大不同,唯一的共同点是下面的图片和数据集中显示的列。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)