2017-06-03 121 views
1

使用R,有没有一个公式可以帮助我根据这个条件计算销售佣金。为例如:计算线性佣金 - 寻找公式

如果生长(以%计)为5%和7%之间,则推销员将接收这将是从10%线性至12.5%

变量佣金:

TargetAmt<-100 
Earned<-105.6 
PctGrowth<-((Earned-TargetAmt)/TargetAmt)*100 
PctGrowth 

5.6

因此,我现在需要计算自己的佣金,这将是线性的,从10%到12.5%。

我可以通过计算斜线来手动完成此操作。但是,我如何在R中执行此操作?

+2

你的观点是(x1,y1)=(0.05,0.10)和(x2,y2)=(0.07,0.125)。只需使用直线的点斜率形式:y-y1 = m *(x-x1),其中m =(y2-y1)/(x2-x1)。 – Robert

回答

3

1)LM对于5.6%的佣金增长是10.6%

growth <- c(5, 7) 
commission <- c(10, 12.5) 

fit <- lm(commission ~ growth) 
predict(fit, list(growth = 5.6)) 
##  1 
## 10.75 

1A)可替换地,我们可以从线性回归得到的公式,然后只是应用它我们自己。在这种情况下,斜率为1.25和截距为3.75:

> fit 
Call: 
lm(formula = commission ~ growth) 

Coefficients: 
(Intercept)  growth 
     3.75   1.25 

所以佣金是1.25倍的增长,以百分比加3.75个百分点,即1.25 * 5.6 + 3.75 = 10.75。

2)约的另一种方法是使用approx这样的:

approx(growth, commission, xout = 5.6)$y 
## [1] 10.75 
+0

谢谢G.格洛腾迪克。这有助于堆积如山。 – MaxPD

+2

这真的很好,很简单,只是一件事,OP要求10-12.5的佣金。所以你一定要改变佣金< - c(10,12)调试< - c(10,12.5) –

+0

我将使用'approx'函数。它是最直接的。谢谢。 – MaxPD

2

替代解决方案

寻找线

使用y的方程= MX + c:

m = (0.125 - 0.1)/(0.07-0.05) 
m = 0.025/0.02 
m = 1.25 

替代0.1(10%)和0.05(5%)到方程才能获取C

y = 1.25x + c 
0.1 = (1.25 * 0.05) + c 
0.1 - (1.25 * 0.05) = c 
c = 0.0375 

我们现在有我们的线方程:

y = 1.25x + 0.0375 

代码

TargetAmt <- 100 
Earned <- 105.6 

profitAsDecimal = (Earned/TargetAmt) - 1 
commission = (1.25 * profitAsDecimal) + 0.0375 
commissionAsDecimal = (1.25 * profitAsDecimal) + 0.0375 

因此,对于5.6的增长,您的commissionAsDecimal将是0.1075。乘以100得到10.75的百分比。

这个答案会给你一个线性结果,从5%到7%等于10%到12.5%。上面的答案是从10%到12%

+1

谢谢。你是对的。他有一个错字。我知道这个概念。我想要R中的公式。谢谢你的帮助。 – MaxPD