让我们获取以下示例数据集:
counterparty1 <- c("A","B","B","B","B")
counterparty2 <- c("B","C","A","A","C")
counterparty1_side <- c("buy","sell","buy","sell","sell")
price <- c(1.2,3.7,2.5,1.2,3.7)
sample.data <- data.frame(counterparty1,counterparty2,counterparty1_side,price)
第1行和第4行实际上给出了相同的观察结果-唯一的问题是,第1行说“ A”购买资产(暗指“ B”出售),而在第4行说“ B”出售资产(暗含) (“ A”购买)。
我想用代码创建以下数据集:
counterparty1 <- c("A","B","B","B","B")
counterparty2 <- c("B","C","A","A","C")
counterparty1_side <- c("buy","sell","buy","sell","sell")
price <- c(1.2,3.7,2.5,1.2,3.7)
transaction_number <- c(1,2,3,1,4)
duplicate <- c(1,0,0,1,0)
clean.data <- data.frame(counterparty1,counterparty2,counterparty1_side,price,transaction_number,duplicate)
实际上,我的数据集要大得多,所以我不能硬编码。
更新:我添加了第5行,与第2行相同,包括对方1和2的顺序相同。我希望“ duplicate”变量仅将第1行和第4行标记为重复(因为它们是相反的),而不是第2行和第5行。
答案 0 :(得分:5)
解决了OP的后续问题,指出如果同一笔交易发生两次,则不应将其视为重复交易。(例如,乙方将商品出售给丙方两次 $ 3.7K );阅读评论和更新的问题。
Wrapper
考虑欺诈(无论是因为对方角色已更改还是他们是实际的欺诈而被骗)(查看问题的编辑以查看问题的第一个版本)。
class Wrapper {
public:
Value& val;
// copy constructor automatically generated
};