У меня есть набор данных ниже, который показывает количество автомобилей в воображаемом автосалоне.Переменная current_price - это, очевидно, цена, по которой автомобиль в настоящее время выставлен на продажу.Переменная minimum_price показывает цену жесткого пола, по которой автомобиль ни при каких обстоятельствах не должен продаваться.(Это может быть цена покупки).
Я пытаюсь создать функцию, в которой пользователь может выбрать подмножество автомобилей в базе данных (используя «пользовательские параметры», как указано ниже), а затем уменьшите или увеличьте значение Current_Price в процентах или фунтах (*).
«Параметры минимальной прибыли» задают минимальную прибыль, которая должна быть получена на всех автомобилях.В этом примере они были установлены на £ 10 и 10%.Это означает, что прибыль для каждого автомобиля должна составлять 10 фунтов стерлингов или 10% от текущей цены - в зависимости от того, какая из этих величин больше.
Параметры изменения цены определяют, на сколько цена будет двигаться и должна ли она двигаться вверх или вниз..
# Dummy data
Type <- rep(c("Car", "Van"),each=3)
Age <- as.numeric(c(2, 2, 5, 4, 8,1))
Colour <- c("Red", "Red", "Yellow", "Red", "Black", "Red")
Make <- c("Ford", "VW", "VW", "VW", "BMW", "Ford")
Current_Price <- as.numeric(c(1050, 1000, 1500, 995, 2200, 2100))
Minimum_Price <- as.numeric(c(900, 600, 500, 850, 1900, 1950))
df1 <- data.frame(Type, Age, Colour, Make, Current_Price, Minimum_Price)
# User defined parameters - price to be changed for all cars which fit below selection
Input_Type <- "Car"
Input_Min_Age <- 2 # All cars this age and above
Input_Max_Age <- 10 # All cars this age and below
Input_Colour <- "Red"
Input_Make <- c("Ford", "VW")
# Minimum profit parameters
Input_Min_Pounds <- 10
Input_Min_Percentage <- 0.10
# Price change parameters
Input_Change_Type <- "Percentage" # "Percentage" or "Pound"
Input_Change_Value <- -0.10 # "-" sign to represent price reduction
Учитывая вышесказанное, я ожидаю, что изменение строк повлияет на строки 1 и 2.Цена линии 1 должна снизиться с £ 1050 до £ 1000.Это связано с тем, что 1 000 фунтов стерлингов - это самая низкая возможная цена, при которой 10% цены составляет прибыль (900 / (1-0,10) = 1000).
Цена линии 2 должна просто снизиться на 10% до 900.
Кто-нибудь понял, как поместить это в функцию, которая будет довольно интуитивно понятна для того, кто не привык использовать R?