Поиск по сайту:

Функция R with() и inside() — все, что вам нужно знать!


Здравствуйте, читатели! В этой статье мы подробно рассмотрим две тесно связанные, но разные функции программирования R — функцию R with() и внутри(). Итак, давайте быть!! :)

1. Функция R с()

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

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

Синтаксис:

with(data-frame, R expression)

Пример:

rm(list = ls())

Num <- c(100,100,100,100,100)
Cost <- c(1200,1300,1400,1500,1600)

data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)

with(data_A, Num*Cost)
with(data_A, Cost/Num)

В приведенном выше примере мы вычислили выражение «Num*Cost» для фрейма данных data_A непосредственно в функции with().

После этого мы также вычислили выражение «Стоимость/Число» внутри функции.

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

Выход:

> with(data_A, Num*Cost)
[1] 120000 130000 140000 150000 160000
> with(data_A, Cost/Num)
[1] 12 13 14 15 16

2. Функция R внутри()

Прочитав о функции with(), теперь давайте сосредоточимся на ее близнеце! Ха-ха! Просто шутка! Хотя названия функций звучат одинаково, они различаются по принципу действия.

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

Синтаксис:

within(data frame, new-column <- R expression)

Пример:

rm(list = ls())

Num <- c(100,100,100,100,100)
Cost <- c(1200,1300,1400,1500,1600)

data_A <- data.frame(Num,Cost,stringsAsFactors = FALSE)

within(data_A, Product <- Num*Cost)
within(data_A, Q <- Cost/Num)

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

> within(data_A, Product <- Num*Cost)
  Num Cost Product
1 100 1200  120000
2 100 1300  130000
3 100 1400  140000
4 100 1500  150000
5 100 1600  160000
> within(data_A, Q <- Cost/Num)
  Num Cost  Q
1 100 1200 12
2 100 1300 13
3 100 1400 14
4 100 1500 15
5 100 1600 16

Заключение

На этом мы подошли к концу этой темы. Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.

Следите за новостями, чтобы узнать больше о таких сообщениях, связанных с R, а пока удачного обучения! :)