在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) }