【发布时间】:2018-07-22 23:07:22
【问题描述】:
我觉得我遇到了一个复杂的问题(或者至少对我来说是这样!)。
我有一张价格表,需要从 csv 中读取,看起来就像这样:
V1 <- c("","Destination","Spain","Spain","Spain","Portugal","Portugal","Portugal","Italy","Italy","Italy")
V2 <- c("","Min_Duration",rep(c(1,3,6),3))
V3 <- c("","Max_Duration",rep(c(2,5,10),3))
V4 <- c("Full-board","Level_1",runif(9,100,200))
V5 <- c("Full-board","Level_2",runif(9,201,500))
V6 <- c("Full-board","Level_3",runif(9,501,1000))
V7 <- c("Half-board","Level_1",runif(9,100,200))
V8 <- c("Half-board","Level_2",runif(9,201,500))
V9 <- c("Half-board","Level_3",runif(9,501,1000))
Lookup_matrix <- as.data.frame(cbind(V1,V2,V3,V4,V5,V6,V7,V8))
上表中的价格当然会有点奇怪,因为它们是完全随机的——但我们可以忽略...
我也有这样一张桌子:
Destination <- c("Spain", "Italy", "Portugal")
Duration <- c(2,4,8)
Level <- c(1,3,3)
Board <- c("Half-board","Half-board","Full-board")
Price <- "Empty"
Price_matrix <- as.data.frame(cbind(Destination,Duration,Level,Board,Price))
我的问题是 - 如何使用查找矩阵中可以找到的相应价格填充价格矩阵的“价格”列?请注意,价格矩阵的持续时间变量必须适合查找矩阵中“Min_Duration”和“Max_Duration”列之间的范围。
在 Excel 中,我会使用 Index,Match 公式。但我被 R 难住了。
提前致谢, 丹
【问题讨论】: