在R中引用V查找样式而不合并

在R中引用V查找样式而不合并,r,vlookup,R,Vlookup,我有两张桌子。一个是关于在不同网站上销售商品应支付佣金的信息。我想为其创建销售价格的其他持有物品 请参阅两个表格: Channel <- c("DIRECT", "EBAY", "AMAZON") Commission_percentage <- c(.1, .5, .4) Min_commission <- c(0, 0, 2) Processing <- c(0.05, 0.05, 0.03) Commission_table <- as.data.frame

我有两张桌子。一个是关于在不同网站上销售商品应支付佣金的信息。我想为其创建销售价格的其他持有物品

请参阅两个表格:

Channel <- c("DIRECT", "EBAY", "AMAZON")
Commission_percentage <- c(.1, .5, .4)
Min_commission <- c(0, 0, 2)
Processing <- c(0.05, 0.05, 0.03)

Commission_table <- as.data.frame(cbind(Channel, Commission_percentage, 
Min_commission, Processing))

Channel让我们假设这些数据帧是以正确的方式构造的


当(或如果)内存受到限制时,应该允许进行垃圾收集。

但我不确定它是否能帮助您解决内存问题。应该有人告诉您不要使用
as.data.frame(cbind)(
。永远,永远,NEVER@42-你能解释一下这有什么问题吗?我对R很陌生,完全是自学成才的,所以我确信有一百万件事我做得不够好!感谢你的帮助。如果你在谷歌搜索“为什么我不应该使用
as.data.frame(cbind(
”)你会发现这是早期的成功之一:嗨@42-,我不确定我在这里是否做错了什么。如果我在价格表中找到,我会得到A1项的15.75盈亏平衡,但是这应该是;10+最大值(10*0.10,0)+(0.05*(10+最大值(10*0.10,0)))=>11+0.55=11.55。也就是说,第A5项的答案是正确的。你是用你的数据还是我的更正来做的?以防万一,我添加了一个匹配步骤,以防某个系数被不适当地转换。我是用你的更正来做的-我刚刚注意到这是由“佣金”的拼写错误引起的在“for”循环的最后几行。更正拼写后,解决方案非常有效。再次感谢。
Item <- c("A1", "A2", "A3", "A4", "A5")
Cost <- c(10, 14, 18.85, 20, 5)    
Channel <- c("DIRECT", "EBAY", "AMAZON", "AMAZON", "AMAZON")

Price_table <- as.data.frame(cbind(Item, Cost, Channel))
Price_table <- data.frame( Item, Cost, Channel)
Commission_table <- data.frame(Channel, Commission_percentage, Min_commission, Processing)
befunc <- function( Cost, 
                   Commission_percentage, 
                   Min_commission,   Processing ) {
            Cost +
            max(Commission_percentage * Cost, Min_commission) + 
            Processing*(Cost + 
                              max(Commission_percentage * Cost, Min_commission))}

BE <- numeric(length(Price_table[['Channel']]))  #pre-allocation

 for ( Ch in seq_along(Price_table[['Channel']]) ){ 
    Cost =   Price_table[Ch, "Cost"]
    Chan <-  Price_table[Ch, "Channel"]; 
    CommPct <- Commission_table[ match(Chan,Commision_table[["Channel"]]), "Commission_percentage"]
    MinComm <- Commission_table[ match(Chan,Commision_table[["Channel"]]), "Min_commission"]
    Proc <-    Commission_table[ match(Chan,Commision_table[["Channel"]]), "Processing"]

 BE[Ch] <- befunc( Cost, CommPct, MinComm, Proc) }