Как настроить смартфоны и ПК. Информационный портал

Функции Excel.Функция И(), ИЛИ(). Передача аргументов функции по значению

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

  • таблица должна обязательно содержать заголовки столбцов. Эти заголовки должны располагаться строго в одной строке, не должны содержать объединенных и пустых ячеек.
  • таблица должна быть неделимая, т.е. не должна содержать полностью пустых строк и столбцов, а так же объединенных ячеек
  • в каждом столбце должна содержаться однотипная информация: если в столбце должны содержаться даты, значит кроме дат там не должно быть ничего другого; если в столбце числа(суммы, кол-во) - значит должны быть только числа. Не следует при отсутствии чисел оставлять ячейку пустой или ставить пробел. Вместо этого необходимо ставить 0.

Для разбора функции баз данных возьмем следующий пример таблицы:

Данная таблица отвечает всем требованиям для работы с функциями баз данных, однако, чтобы более удобно и гибко работать с функциями баз данных лучше сместить таблицу данных на несколько строк вниз, а выше добавить таблицу критериев, где будут формироваться условия отбора данных из основной таблицы:


Именно для этой таблицы будут приведены все примеры описаний функций. И критерии заданы следующие: отбирать из поля "Дерево" Яблони с высотой больше 3 и меньше 6 и Вишни, со значением в поле "Возраст" больше 8. Если посмотреть на таблицу данных(из которой будут отбираться данные и производится расчеты функциями), то этим критериям отвечают только две строки: строки 9 и 10 листа.
Как видно, в качестве критериев можно указывать выражение в виде: >6 , 0 (не равно нулю), >=7 , "Яблоня" .

Все функции из категории баз данных имеют три одинаковых аргумента:
Функция(база_данных; поле; критерий)
база_данных - ссылка на ячейки данных таблицы, включая заголовок(A6:E12).
поле - в данном аргументе можно записать как непосредственно текст с названием столбца в кавычках ("Дерево", "Возраст" или "Урожай"), так и число, задающее положение столбца в таблице: 1 - для первого поля(столбца) в таблице "Дерево", 2 - для второго поля "Высота", 3 - для третьего поля "Возраст" и так далее.
критерий - ссылка на диапазон ячеек с условиями отбора(A1:F3). Функция отберет данные из таблицы, которые удовлетворяют условиям, указанным в ячейках критериев. В ссылке на критерии обязательно должны быть включены названия столбцов, для которых выполняется отбор данных.

  • ДСРЗНАЧ (DAVERAGE) - Вычисляет среднее значение выбранных записей базы данных:
    =ДСРЗНАЧ(A6:E12 ;5; A1:F3)
    =ДСРЗНАЧ(A6:E12 ;"Прибыль"; A1:F3)
    =DAVERAGE(A6:E12 ,5, A1:F3) вернет значение 90 000р. , т.к. сумма прибыли отобранных записей равна 180 000р., а всего отобрано 2 записи. 180 000/2 = 90 000 .
  • БСЧЁТ (DCOUNT) - Подсчитывает количество числовых ячеек в базе данных:
    =БСЧЁТ(A6:E12 ;5; A1:F3)
    =БСЧЁТ(A6:E12 ;"Прибыль"; A1:F3)
    =DCOUNT(A6:E12 ,5, A1:F3) вернет число 2 , т.к. только две строки в таблице отвечают критериям
  • БСЧЁТА (DCOUNTA) - Подсчитывает количество непустых ячеек в базе данных:
    =БСЧЁТА(A6:E12 ;4; A1:F3)
    =БСЧЁТА(A6:E12 ;"Прибыль"; A1:F3)
    =DCOUNTA(A6:E12 ,4, A1:F3) вернет 2, т.е. подсчитает в отвечающих критериям строках количество непустых ячеек в столбце "Прибыль"
  • БИЗВЛЕЧЬ (DGET) - Извлекает из базы данных одну запись, удовлетворяющую заданному условию:
    =БИЗВЛЕЧЬ(A6:E12 ;5; A1:F3)
    =БИЗВЛЕЧЬ(A6:E12 ;"Прибыль"; A1:F3)
    =DGET(A6:E12 ,5, A1:F3) для заданных условий вернет значение ошибки #ЧИСЛО! (#NUM!) , т.к. этим условиям отвечает более одной записи. Если же указать диапазон для критерия как:
    =БИЗВЛЕЧЬ(A6:E12 ;5; A1:F2) то функция вернет значение 75 000р. , т.е. единственную запись о прибыли для Яблонь с высотой больше 3 и меньше 6 (в данный промежуток попадает лишь строка 10 - Яблона, высота 5)
  • ДМАКС (DMAX) - Находит максимальное значение среди выделенных записей базы данных:
    =ДМАКС(A6:E12 ;5; A1:F3)
    =ДМАКС(A6:E12 ;"Прибыль"; A1:F3)
    =DMAX(A6:E12 ,5, A1:F3) вернет сумму 105 000р. , т.к. это максимальная прибыль из всех отвечающих критериям строк.
  • ДМИН (DMIN) - Находит минимальное значение среди выделенных записей базы данных:
    =ДМИН(A6:E12 ;5; A1:F3)
    =ДМИН(A6:E12 ;"Прибыль"; A1:F3)
    =DMIN(A6:E12 ,5, A1:F3) вернет сумму 75 000р. , т.к. это минимальная прибыль из всех строк, отвечающих критериям
  • БДПРОИЗВЕД (DPRODUCT) - Перемножает значения определенного поля в записях базы данных, удовлетворяющих условию:
    =БДПРОИЗВЕД(A6:E12 ;3; A1:F3)
    =БДПРОИЗВЕД(A6:E12 ;"Возраст"; A1:F3)
    =DPRODUCT(A6:E12 ,3, A1:F3) вернет 210 , т.к. будут перемножены все значения столбца "Возраст", отвечающие критериям(14*15=210)
  • ДСТАНДОТКЛ (DSTDEV) - Оценивает стандартное отклонение по выборке из выделенных записей базы данных:
    =ДСТАНДОТКЛ(A6:E12 ;4; A1:F3)
    =ДСТАНДОТКЛ(A6:E12 ;"Урожайность"; A1:F3)
    =DSTDEV(A6:E12 ,4, A1:F3) вернет 0,707107 , т.е. оценку стандартного отклонения урожайности по указанным критериям.
  • ДСТАНДОТКЛП (DSTDEVP) - Вычисляет стандартное отклонение по генеральной совокупности из выделенных записей базы данных:
    =ДСТАНДОТКЛП(A6:E12 ;4; A1:F3)
    =ДСТАНДОТКЛП(A6:E12 ;"Урожайность"; A1:F3)
    =DSTDEVP(A6:E12 ,4, A1:F3) вернет 0,5 , т.е. точное стандартное отклонение урожайности по указанным критериям, если считать, что данные в базе данных описывают генеральную совокупность всех деревьев в саду.
  • БДСУММ (DSUM) - Суммирует числа в поле для записей базы данных, удовлетворяющих условию:
    =БДСУММ(A6:E12 ;5; A1:F3)
    =БДСУММ(A6:E12 ;"Прибыль"; A1:F3)
    =DSUM(A6:E12 ,5, A1:F3) вернет сумму прибыли всех строк, отвечающих критериям, т.е. 180 000р.
    =БДСУММ(A6:E12 ;5; A1:A2)
    =DSUM(A6:E12 ,5, A1:A2) вернет сумму прибыли от всех Яблонь, т.е. 225 000р.
  • БДДИСП (DVAR) - Оценивает дисперсию по выборке из выделенных записей базы данных:
    =БДДИСП(A6:E12 ;4; A1:A2)
    =БДДИСП(A6:E12 ;"Урожайность"; A1:A2)
    =DVAR(A6:E12 ,4, A1:A2) вернет 0,5 , что будет оценкой дисперсии урожайности по указанным критериям, если считать, что данные в таблице являются выборкой из генеральной совокупности всех деревьев в саду
  • БДДИСПП (DVARP) - Вычисляет дисперсию по генеральной совокупности из выделенных записей базы данных:
    =БДДИСПП(A6:E12 ;4; A1:A2)
    =БДДИСПП(A6:E12 ;"Урожайность"; A1:A2)
    =DVARP(A6:E12 ,4, A1:A2) вернет 10,66667 , т.е. точную дисперсию урожайности Яблонь и Вишень, если считать, что данные в базе данных описывают генеральную совокупность всех деревьев в саду

Функции в программе Excel позволяют выполнять различные, довольно сложные действия вычислительного характера буквально в несколько кликов. Ещё больше упрощает работу с ними такой удобный инструмент, как «Мастер функций» . Давайте рассмотрим, как он устроен и что с его помощью можно делать.

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

Переход в Мастер функций

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

Проще всего перейти в него, нажав на кнопку «Вставить функцию» , расположенную слева от строки формул. Этот способ хорош тем, что им воспользоваться можно, находясь в любой вкладке программы.

Кроме того, нужный нам инструмент можно запустить, перейдя во вкладку «Формулы» . Затем следует нажать на самую крайнюю слева кнопку на ленте «Вставить функцию» . Она располагается в блоке инструментов «Библиотека функций» . Это способ хуже предыдущего тем, что если вы не находитесь во вкладке «Формулы» , то придется выполнять дополнительные действия.

Можно также кликнуть на любую другую кнопку блока инструментов «Библиотека функций» . При этом, в выпадающем меню появится список, в самом низу которого есть пункт «Вставить функцию…» . Вот по нему и нужно кликнуть. Но, данный способ является ещё запутаннее предыдущего.

Очень простым способом перехода в режим Мастера является нажатие комбинации горячих клавиш Shift+F3 . Этот вариант предусматривает быстрый переход без дополнительных «телодвижений». Главный недостаток его состоит в том, что далеко не каждый пользователь способен удержать у себя в голове все комбинации горячих клавиш. Так что для новичков в освоении Excel этот вариант не подходит.

Категории элементов в Мастере

Какой бы способ активации из вышеуказанных вы не выбрали, в любом случае, после данных действий запускается окно Мастера . В верхней части окна расположено поле поиска. Сюда можно ввести наименование функции и нажать кнопку «Найти» , чтобы быстрее отыскать нужный элемент и получить доступ к нему.

Средняя часть окна представляет выпадающий список категорий функций, которые представляет Мастер . Чтобы просмотреть данный перечень, жмем на пиктограмму в виде перевернутого треугольника справа от него. Таким образом открывается полный список доступных категорий. Прокручивать вниз его можно с помощью боковой полосы прокрутки.

Все функции разделены на следующие 12 категорий:

  • Текстовые;
  • Финансовые;
  • Дата и время;
  • Ссылки и массивы;
  • Статистические;
  • Аналитические;
  • Работа с базой данных;
  • Проверка свойств и значений;
  • Логические;
  • Инженерные;
  • Математические;
  • Определенные пользователем;
  • Совместимость.

В категории «Определенные пользователем» находятся функции, составленные самим юзером или загруженные из внешних источников. В категории «Совместимость» расположены элементы из старых версий Excel, для которых уже существуют более новые аналоги. Они были собраны в эту группу для поддержки совместимости работы с документами, созданными в старых версиях приложения.

Кроме того, в этом же списке находятся две дополнительные категории: «Полный алфавитный перечень» и . В группе «Полный алфавитный перечень» располагается полный список всех функций в независимости от категории. В группе «10 недавно использовавшихся» находится список десяти последних элементов, к которым пользователь прибегал. Этот перечень постоянно обновляется: использовавшиеся раньше элементы убираются, а новые добавляются.

Выбор функции

Для того, чтобы перейти к окну аргументов, прежде всего необходимо выбрать нужную категорию. В поле «Выберите функцию» следует отметить то наименование, которое требуется для выполнения конкретной задачи. В самой нижней части окна находится подсказка в виде комментария к выделенному элементу. После того, как конкретная функция выбрана, требуется нажать на кнопку «OK» .

Аргументы функции

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


Выполнение функции

После того, как вы нажали на кнопку «OK» Мастер закрывается и происходит выполнение самой функции. Результат выполнения может быть самый разнообразный. Он зависит от тех задач, которые ставятся перед формулой. Например, функция СУММ , которая была выбрана в качестве примера, производит суммирование всех введенных аргументов и показывает результат в отдельной ячейке. Для других вариантов из списка Мастера результат будет абсолютно иным.

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

Одна из самых популярных функций в приложении ExcelЕСЛИ . Это логическое сравнение значения и получаемого результата. Если говорить проще, то функция может звучать так:

ЕСЛИ условие истинно, то выполняем это, а иначе делаем что-либо еще

Синтаксис этой функции достаточно прост:

ЕСЛИ (логическое_условие; значение_в_случае_ИСТИНА; значение в случае_ЛОЖЬ)

Разберем подробнее:

  • Логическое_условие – значение, которое будем проверять
  • Значение_в_случае_ИСТИНА – действие, когда требование выполняется
  • Значение в случае_ЛОЖЬ – действие, когда Логическое_условие не выполняется

Как использовать функцию

Пример №1

На скриншотах ниже показан самый просто вариант использования. Мы сначала проверяем заданное условие А1>25 . ЕСЛИ это требование выполняется , тогда выводим в ячейку «больше 25 », иначе «меньше или равно 25 ».

Пример №2

Теперь более сложное задание. Ниже мы рассмотрим пример переаттестации сотрудников предприятия. Изначально таблица выглядит так:

Нам необходимо в столбце С вывести результаты переаттестации, которые могут принимать бинарное значение: СДАЛ или НЕ СДАЛ . Критерии у нас будут такими: кто набрал более 45 балов , тот считается сдавшим экзамен, ну а все остальные нет.

Для выполнения задачи необходимо :


Используем несколько условий

При необходимости, функцию ЕСЛИ можно вложить друг в друга. Таким образом, мы расширим варианты решений.

Для примера, возьмем переаттестацию сотрудников, которую рассмотрели раньше. Изменим критерии результата и выставим каждому оценку : Плохо, Хорошо и Отлично. Отлично будем ставить, когда баллы превысят 60 . Оценку Хорошо можно будет получить, набрав от 45 до 60 балов . Ну и в остальных случаях ставим Плохо .


Как видно из примера, вместо второго и третьего значения функции можно подставлять условие. Таким способом добавляем необходимое число вложений. Однако стоит отметить , что после добавления 3-5 вложений работать с формулой станет практически невозможно, т.к. она будет очень громоздкой.

Другие варианты использования функции

Находим сумму столбцов или ячеек

К примеру, есть необходимость просуммировать каждую вторую ячейку столбца. В этом случае поможет использование оператора СУММЕСЛИ . Он позволит работать только с теми столбцами, которые попадают под наши требования. Мы будет рассматривать случай, когда необходимо суммировать элементы в нечетных строках.

Для решения задачи, нам потребуется вставить дополнительный столбец и пронумеровать строки 1 и 0. Именно эти данные мы будем использовать в нашей формуле. В примере видно, какую формулу мы использовали.

Синтаксис : СУММЕСЛИ(диапазон_ячеек; используемое_условие; [диапазон_суммирования])

  • Диапазон – обязательный аргумент. Тут задается диапазон, который оценивается на соответствие условию.
  • Используемое_условие – тут указываем, какие именно ячейки необходимо суммировать.
  • Диапазон_суммирования – указываем, какой именно диапазон использовать для суммирования.

Количество повторений элементов на листе

В этом случае мы можем посчитать, сколько раз заданный элемент встречается на листе. Для этого используем функцию СЧЕТЕСЛИ . Она считает количество ячеек, которые совпадают с заданным значением.

В этом примере мы считаем, сколько клиентов находится в каждом городе. В формуле мы задаем первым диапазон, а вторым значения, которые следует искать.

Используем СЧЕТЕСЛИ и СУММЕСЛИ при подсчете данных

В примере мы постараемся определить усредненный объем дохода от клиентов по каждому городу. Для этого поделим суммарный доход города на количество клиентов.

Поиск нескольких вхождений элемента в списке

Если у нас есть постоянно обновляемый список данных, в котором по мере роста могут появляться дубликаты , то поиск вхождений в этом списке может оказаться затруднительным. Для решения этой задачи проще всего воспользоваться функцией ВПР и СЧЕТЕСЛИ .

Для начала, добавим дополнительный столбец, который добавить порядковый номер вхождения к имени клиента. В результате, первое упоминание элемента будет выдавать Имя1, следующее Имя2 и т.д.

Используем поиск по клиенту Кристина Агилера. Используя формулу ВПР («Кристина Агилера3», диапазон_поиска, 2, ЛОЖЬ), мы получим третий номер этого клиента. В формуле, последним значением ставим ЛОЖЬ, поскольку список не сортирован, и нам необходимо точное совпадение элементов.

Как сократить количество вложений ЕСЛИ

Версии до EXCEL 2003 включительно поддерживали до 7 уровней вложенности ЕСЛИ. Начиная с версии Excel 2007, это ограничение убрали . Но стоит заметить, что ниже 3-4 уровня вложенности мало кто опускается.

Для того чтобы уменьшить количество использования вложений ЕСЛИ, можно использовать функцию ВЫБОР . Она работает со значениями или действиями из заданного списка по номеру индекса.

Синтаксис : ВЫБОР (номер_индекса; значение_индекса1; значение_индекса2; [значение_индекса3];…)

Для примера, функция ВЫБОР (1; «Третий»; «Второй»; «Первый») , вернет нам слово «Третий », если мы ее добавим в ячейку.

Стоит отметить, что имеются некоторые ограничения. В частности, в качестве индекса могут выступать только числа .

Функция Excel - это заранее определенная формула, которая работает с одним или несколькими значениями и возвращает результат.

Наиболее распространенные функции Excel являются краткой записью часто используемых формул.

Например функция =СУММ(А1:А4) аналогична записи =А1+А2+А3+А4.


А некоторые функции выполняют очень сложные вычисления.


Каждая функция состоит из имени и аргумента .


В предыдущем случае СУММ - это имя функции , а А1:А4 - аргумент . Аргумент заключается в круглые скобки.

Т.к. функция суммы используется наиболее часто, то на панель инструментов "Стандартная" вынесена кнопка "Автосумма".

Введите в ячейки А1, А2, А3 произвольные числа. Активизируйте ячейку А4 и нажмите кнопку автосуммы. Результат показан ниже.



Нажмите клавишу ввода. В ячейку А4 будет вставлена формула суммы ячеек А1..А3. Кнопка автосуммы снабжена выпадающим списком, из которого можно выбрать другую формулу для ячейки.



Для выбора функции служит кнопка "Вставка функции" в строке формул. При ее нажатии появляется следующее окно.



Если точно неизвестна функция, которую надо применить в данный момент, то в окне диалога "Поиск функции" можно произвести поиск.

Если формула очень громоздкая, то можно включить в текст формулы пробелы или разрывы строк. Это никак не влияет на результаты вычислений. Для разрыва строки надо нажать комбинацию клавиш Alt+Enter.

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



По умолчанию Microsoft Excel не распознает заголовки в формулах. Чтобы использовать заголовки в формулах, выберите команду Параметры в меню Сервис. На вкладке Вычисления в группе Параметры книги установите флажок Допускать названия диапазонов.


При обычной записи формула в ячейке В6 выглядела бы так: =СУММ(В2:В4).


При использовании заголовков формула будет выглядеть так: =СУММ(Кв 1).


Необходимо знать следующее:

  • Если формула содержит заголовок столбца/строки, в котором она находится, то Excel считает, что вы хотите использовать диапазон ячеек, расположенных ниже заголовка столбца таблицы (или справа от заголовка строки);
  • Если формула содержит заголовок столбца/строки, отличного от того, в котором она находится, Excel считает, что вы хотите использовать ячейку на пересечении столбца/строки с таким заголовком и строки/столбца, где расположена формула.
  • При использовании заголовков можно указать любую ячейку таблицы с помощью пересечения диапазонов. Например, для ссылки на ячейку С3 в нашем примере можно использовать формулу =Строка2 Кв 2 . Обратите внимание на пробел между заголовками строки и столбца.
  • Формулы, содержащие заголовки, можно копировать и вставлять, при этом Excel автоматически настраивает их на нужные столбцы и строки. Если будет произведена попытка скопировать формулу в неподходящее место, то Excel сообщит об этом, а в ячейке выведет значение ИМЯ? . При смене названий заголовков, аналогичные изменения происходят и в формулах.

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

Для чего нужны функции в R?

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

Зачастую во время анализа приходится выполнять одни и те же действия несколько раз, то есть, писать один и тот же код, где лишь незначительная его часть изменена. Однако гораздо практичнее будет оформить подобные массивы кода в функцию. В этом случае блок кода, копируемый из раза в раз, будет телом функции, а места кода, которые Вы изменяете в этом блоке станут аргументами (параметрами) функции. Также у функции должно быть имя, чтобы ее можно было вызвать в . Схема построения функции в R выглядит следующим образом:

Сначала следует написать имя функции, затем знак присвоения и слово function , которое создает объект класса функция. В скобках мы указываем аргументы, а тело функции находится внутри фигурных скобок. Важно отметить, что для использования функции требуется ввести только имя функции и ее аргументы:

Таким образом массивный скрипт с большим количеством повторяющегося кода при помощи функций становится более компактным и понятным для пользователя. Также не забывайте комментировать код, трактовка которого неочевидна, чтобы Вы или другой человек могли понять алгоритм и замысел Вашего анализа.

Использование существующих функций в R

К счастью существует множество готовых функций в R. Так например, mean() , summary() , read.table() , lm() являются базовыми функциями, которыми можно пользоваться без применения сторонних пакетов. Чтобы узнать какие именно аргументы требуется ввести для использования функции введите в консоль знак вопроса и имя функции, например: ?read.table . На открывшейся странице в разделах Usage и Arguments будет перечень аргументов для использования данной функции. Как правило, критически важные аргументы для работы функции находятся в начале списка. Аргументы, которые не будут заполнены примут значения по умолчанию:

read.table("D:/Folder/mytable.txt", sep = "\t", header = T)

Так как официальный архив R пакетов (CRAN) насчитывает более 11 тысяч , то количество доступных функций для анализа данных стремительно приближается к 1 млн!!! Как же нам проводить поиск нужной функции во всех этих пакетах? Для этого существует сайт rdocumentation.org : удобный сервис поиска функций и пакетов по искомому слову или сочетанию слов.

Базовая версия R, которая была загружена на Ваш компьютер, состоит из 30 встроенных пакетов. Остальные следует загружать и подключать самостоятельно. Следовательно, сначала мы ищем к какому пакету принадлежит функция, устанавливаем этот пакет в библиотеку пакетов на компьютере, загружаем его в R и лишь после этого используем функции загруженного пакета. Не забывайте загружать пакет при повторном запуске R, если снова собираетесь использовать функции этого пакета.

Создание функций: три наглядных примера!

Сколько бы функций не существовало в CRAN, рано или поздно придется написать свои собственные. Причин на это может быть несколько: такой функции еще не написано; проще написать свою, чем искать ее в других R пакетах: и т.д. Так или иначе, создать функции совсем не сложно. Для того, чтобы это доказать, я приведу три простых примера, которые помогут понять логику построения функций.

Пример 1: сколько будет 2+2×2?

Создадим простейшую функцию, основанную исключительно на арифметических действиях. Например, вычислим знакомый нам с начальной школы пример: сколько будет 2+2*2? Усложним немного: 12+12*12? Ну и в завершении арифметических упражнений 42+42*42? Как Вы могли заметить, все эти примеры основаны на одной и той же формуле: a+a*a . Создание функции в R будет идеальным решением для подобного рода задач.

school <- function(a){ b = a+a*a print(b) } school(2) school(12) school(22)

Результат вычислений функции отобразится на экране консоли, т.к. для вывода информации мы использовали базовую функцию print() внутри нашей функции . Когда же нам требуется сохранить результат в виде отдельного объекта (переменной), следует воспользоваться функцией return() , что мы сделаем в следующем примере.

Пример 2: от горшка два вершка

В детстве мы все читали русские народные сказки. Меня, например, всегда интересовало что значит фраза "от горшка два вершка", а точнее сколько это в сантиметрах. Думаю, пришло время получить ответ: создадим конвертер вершков в R при помощи новой функции convershok().

Один вершок равен 4.445 см. Пусть программа выводит на экран предложение от том, что столько вершков равняется столько-то сантиметров, используя базовую функцию для объединения текстовых и числовых объектов paste() . Также мы хотим, чтобы полученное значение сохранялись как отдельный объект, для чего в конце функции добавим return(vershok) .

convershok <- function(n){ vershok <- n * 4.445 print(paste(n, "vershok", "=", vershok, "cm")) return(vershok) } x <- convershok(2)

Отлично, мы получили заветное сообщение и сохранили 8.89 (см), как объект x. Вот только о каком именно горшке идет речь в поговорке не сказано, поэтому измерьте высоту первого попавшегося горшка, добавьте это значение к переменной x и напишите в комментариях, сколько у Вас получилось;-)

Пример 3: ноутбук в кредит, сколько придется переплатить?

Допустим, у студента сломался ноутбук. На данный момент у него нет свободных денег на покупку нового, и он решил взять его в кредит. В банке ему предложили кредит на сумму 30.000 рублей с процентной ставкой 35% годовых и возможностью преждевременного погашения. Рассчитаем сколько денег нужно выплатить за ноутбук при погашении кредита через месяц, три месяца и год.

Для расчетов я использую формулу для вычисления суммы процентов, начисленных за пользование кредитом в течение n месяцев.

sp = p * (t + 1) / 24 , где:

sp - сумма процента
p - годовая процентная ставка
t - срок кредита (месяцев).

Реализуем эту формулу в R, после чего добавим к цене ноутбука (n ) высчитанный суммарный процент (sp ), помноженный на цену ноутбука товара (n ):

result <- function(n, p, t){ sp <- p*(t + 1)/24 total <- n + n*sp/100 print(paste("sp =", round(sp, 2), "%; ", "total price =", total, "rubles")) } result(30000, 35, 1) result(30000, 35, 3) result(30000, 35, 12)

Как Вы видите, 35% годовых отнють не означает, что студент будет платить за кредит 35% от текущей стоимости ноутбука: в реальности за год он переплатит на 19%. Другой интересный вывод в том, что кредитный процент на один месяц гораздо выше, чем усредненный месячный процент на три месяца и тем более на год. То есть брать кредиты на долгий срок "выгодно" :-)

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

Заключение

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

Лучшие статьи по теме