gpt4 book ai didi

r - 通过两个列表的复杂比较创建一个列表

转载 作者:行者123 更新时间:2023-12-02 19:06:21 25 4
gpt4 key购买 nike

我正在处理市场交易数据,其中每个观察都包含买方 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)

我搜索了与我的类似问题的现有答案,通常涉及函数 maply(),并尝试实现它们,但事实证明不成功。

非常感谢您对我的帮助。

最佳答案

您正在寻找这样的东西吗?如果是,那么您可能需要在构造 data.frame 时更改可重现的示例,以使用 c 而不是 list

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

关于r - 通过两个列表的复杂比较创建一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65007636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com