我有两个数据框。
set.seed(1234)
df <- data.frame(
id = factor(rep(1:24, each = 10)),
price = runif(20)*100,
quantity = sample(1:100,240, replace = T)
)
df2 <- data.frame(
id = factor(seq(1:24)),
eq.quantity = sample(1:100, 24, replace = T)
)
我想通过因子变量df2$eq.quantity
找到与 相比最接近的绝对值。我想对每个in执行此操作并将其绑定到一个新的数据帧中,称为.df$quantity
id
id
df2
results
我可以为每个单独的 ID 这样做:
d.1 <- df2[df2$id == 1, 2]
df.1 <- subset(df, id == 1)
id.1 <- df.1[which.min(abs(df.1$quantity-d.1)),]
这将给出解决方案:
id price quantity
1 66.60838 84
但我真的很希望能够使用更智能的解决方案,并将结果收集到一个数据框中,所以如果我手动执行它会看起来像这样:
results <- cbind(id.1, id.2, etc..., id.24)
我在给这个问题起个好名字时遇到了一些麻烦?