我正在研究市场交易数据,其中每个观察值都包含买方ID变量的值和卖方ID变量的值。对于每个观察(即每笔交易),我想创建一个变量,该变量等于关联的卖方与与该交易涉及的买方不同的买方进行的其他交易的数量。因此,以下
data <- data.frame(Buyer_id = c("001","001","002","001"), Seller_id = c("021","022","022","021"))
我想获得:
Result <- list(0,1,1,0)
我搜索了与我类似的问题(通常涉及函数)的已有问题的答案mapply()
,并尝试实现它们,但是事实证明它没有成功。
非常感谢您对我的帮助。
您是否正在寻找这样的东西?如果是,那么您可能希望将可复制的示例更改c
为list
在构建data.frame时使用的代替。
data <- data.frame(Buyer_id = c("001","001","002","001"),
Seller_id = c("021","022","022","021"))
data$n <- NA
for (i in seq_len(nrow(data))) {
seller <- as.character(data[i, "Seller_id"])
buyer <- as.character(data[i, "Buyer_id"])
with.buyers <- as.character(data[data$Seller_id == seller, "Buyer_id"])
with.buyers <- unique(with.buyers)
diff.buyers <- with.buyers[!(with.buyers %in% buyer)]
data[i, "n"] <- length(diff.buyers)
}
Buyer_id Seller_id n
1 001 021 0
2 001 022 1
3 002 022 1
4 001 021 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句