Як використовувати функції with() і inside() у r
Функції with() і inside() у R можна використовувати для оцінки виразу на основі кадру даних.
Ці функції використовують такий синтаксис:
with(data, expression)
within(data, expression)
золото:
- дані: ім’я блоку даних
- вираз: вираз для оцінки
Ось різниця між двома функціями:
- with() обчислює вираз без зміни вихідного кадру даних.
- inside() обчислює вираз і створює копію вихідного кадру даних.
У наведених нижче прикладах показано, як використовувати кожну функцію на практиці з таким кадром даних:
#create data frame
df <- data. frame (x=c(3, 5, 5, 7, 6, 10),
y=c(2, 2, 0, 5, 9, 4))
#view data frame
df
xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4
Приклад 1: використання функції with().
Ми можемо використовувати наступну функцію with() , щоб перемножити значення між двома стовпцями кадру даних:
#multiply values between x and y
with(df, x*y)
[1] 6 10 0 35 54 40
Значення в стовпцях x і y у кадрі даних перемножуються, і результатом є вектор довжини 6.
Приклад 2: використання функції inside().
Ми можемо використати таку функцію inside() , щоб помножити значення між двома стовпцями у фреймі даних і призначити результати новому стовпцю у фреймі даних:
#multiply values in x and y and assign results to new column z
within(df, z <- x*y)
X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40
Результати множення тепер зберігаються в новому стовпці під назвою z .
Важливо зауважити, що функція inside() створює копію вихідного кадру даних, але фактично не змінює оригінальний кадр даних:
#view original data frame
df
xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4
Щоб постійно зберігати результати множення, ви повинні призначити результати новому кадру даних:
#multiply values in x and y and assign results to new data frame
df_new <- within(df, z <- x*y)
#view new data frame
df_new
X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як додати стовпець до кадру даних у R
Як додати порожній стовпець до кадру даних у R
Як відсортувати фрейм даних за стовпцем у R