Изучение R - настоящая боль для кейстера - кривая обучения крутая, и это может быть ошеломляющим. Что заставляет меня возвращаться к этому унизительному путешествию, так это возможность выполнить работу только один раз, а затем повторять ее столько раз, сколько мне нужно. Я люблю эффективность, поэтому я продолжаю солдаты. Сегодня я столкнулся с утомительным раздражением, которое я смог решить за считанные минуты, создав функцию.

Ситуация

Ищу новую квартиру и пытаюсь сравнить цены. К счастью (спасибо, COVID), некоторые квартиры предлагают бесплатную аренду на месяц или два (!). Это фантастическая новость, но из-за нее сложно сравнивать цены.

Чем я занимался

Когда я видел объявление со скидкой, я открывал свое приложение-калькулятор и делал:

  1. Количество месяцев бесплатно (скидка) * ежемесячная арендная плата (базовая арендная плата)
  2. Минимальный срок аренды (обычно 12 месяцев) * ежемесячная арендная плата (базовая арендная плата)
  3. Вычтите то, что я получил от №1, от №2 и разделите это на минимальную длину аренды.

Если бы я проделал это один или два раза, это было бы не так уж плохо. Но я начал расстраиваться, когда пошел делать это в третий раз. Я знал, какие именно шаги нужно выполнять каждый раз, но каждый раз приходилось делать вручную - фу!

R приходит на помощь!

Основы функции R

Мне было очень страшно писать функцию на R впервые, но это помогло разбить ее по частям. Имейте в виду, что функции могут быстро усложняться, но мы постараемся упростить их.

По сути, функция в R имеет такую ​​структуру:

Не так уж и страшно, правда? Функция действительно просто:

  1. имя вашей функции (myfunction)
  2. входные данные или данные, необходимые для выполнения вашей функции (входные данные)
  3. шаги, которые вы хотите выполнить

Пример функции - mean (). Когда вы хотите рассчитать среднее значение, R знает, что нужно сложить все числа, а затем разделить на их количество. Вместо того, чтобы складывать числа самостоятельно, а затем делить, мы можем просто использовать функцию среднего. Поскольку у меня также есть фиксированные шаги, которые я хочу повторять каждый раз, функции - отличное решение.

Моя функция R

Вернемся к моему примеру с арендой и определим исходные данные и шаги, которые необходимо выполнить.

Исходные данные, которые мне нужны для расчета моей эффективной арендной платы, - это базовая арендная плата, скидка (количество предлагаемых бесплатных месяцев) и срок (обычно 12 месяцев).

Шаги, которые я хочу выполнить: умножить базовую сумму * продолжительность срока минус базовую сумму * скидку. Затем я хочу разделить это на срок, чтобы увидеть, сколько я фактически буду платить каждый месяц срока после применения скидки.

Я назову эту функцию myrent и скажу ей, что нам нужны три параметра: базовая арендная плата (базовая), количество бесплатных месяцев (скидка) и срок аренды (срок).

Мы еще ничего не сказали R о том, что означают эти исходные данные (база, скидка и срок). Мы также можем использовать x, y, z. Все, что мы делаем сейчас, - это говорим ему, что нам понадобятся эти три части информации, а затем мы собираемся что-то с ними сделать.

Теперь по шагам. Мы любезно расскажем нашему другу (я взламываю себя) шаги, которые мы хотим выполнить, и поместим их в {}.

Дела идут вперед! Еще один последний шаг, нам нужно попросить R показать нам, что он рассчитал после выполнения шагов, которые мы указали. Итак, мы собираемся попросить R вывести «результат», который является ответом на (базовая * терминологическая база * скидка) / термин.

Вуаля, мы готовы опробовать нашу функцию !!! Допустим, я вижу квартиру за 2000 долларов в месяц (да, меня это тоже убивает, жилье в округе Колумбия - это настоящий СОБ), и они предлагают 1 месяц бесплатно при аренде на 12 месяцев.

Теперь, когда мы создали функцию, все, что нам нужно сделать, это вызвать ее с помощью «myrent» и ввести каждый из входных параметров (база, скидка и срок).

И вот так наш верный друг дает нам [1] 1833.333.

Это означает, что если обычная арендная плата составляет 2000 долларов в месяц и есть скидка на два бесплатных месяца, я фактически буду платить 1833,33 доллара в месяц в течение 12 месяцев. Теперь я могу легко сравнить это с квартирой за 1 920 долларов в месяц, в которой есть скидка на один месяц бесплатного пользования. Магия!

Продолжайте биться головой о стену, становится намного лучше!

Автор: Дженна Иглсон
Я занимаюсь производственно-организационной психологией, и я нашла свой дом в People Analytics. Визуализация данных - вот что воплощает мою работу в жизнь. В основном я использую Power BI, но мне нравится баловаться другими инструментами. Я хотел бы услышать больше о вашем путешествии! Свяжитесь со мной, оставив комментарий здесь, в Twitter или Linkedin.