Как использовать функцию развертки в R (с примерами)


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

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

sweep(x, MARGIN, STATS, FUN)

куда:

  • x : Имя матрицы
  • MARGIN : поле для выполнения функции (1=строки, 2=столбцы)
  • СТАТИСТИКА : значение(я) для использования в функции
  • FUN : Функция для выполнения

В следующих примерах показано, как использовать функцию Swee() в различных сценариях в R.

Пример 1. Используйте метод Sweep() для выполнения операции над строками.

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

#define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mat

 [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#add specific numbers to each row
sweep(mat, 1 , c(5, 10, 15, 20, 25), " + ")

 [,1] [,2] [,3]
[1,] 6 11 16
[2,] 12 17 22
[3,] 18 23 28
[4,] 24 29 34
[5,] 30 35 40

Вот как работала функцияswap() в этом сценарии:

  • К каждому значению в первой строке было добавлено 5 .
  • К каждому значению во второй строке было добавлено 10 .
  • К каждому значению в третьей строке было добавлено 15 .
  • К каждому значению в четвертой строке было добавлено 20 .
  • К каждому значению в пятой строке было добавлено 25 .

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

Например, следующий код показывает, как умножить значения в каждой строке на определенные числа:

#define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mat

 [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#multiply values in each row by certain amount
sweep(mat, 1 , c(.5, 1, 2, 4, 6), " \* ")

 [,1] [,2] [,3]
[1,] 0.5 3 5.5
[2,] 2.0 7 12.0
[3,] 6.0 16 26.0
[4,] 16.0 36 56.0
[5,] 30.0 60 90.0

Пример 2. Использование функции Swee() для выполнения операции над столбцами

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

#define matrix
mat <- matrix(1:15, nrow= 5 )

#view matrix
mat

 [,1] [,2] [,3]
[1,] 1 6 11
[2,] 2 7 12
[3,] 3 8 13
[4,] 4 9 14
[5,] 5 10 15

#add specific numbers to each column
sweep(mat, 2 , c(5, 10, 15), " + ")

 [,1] [,2] [,3]
[1,] 6 16 26
[2,] 7 17 27
[3,] 8 18 28
[4,] 9 19 29
[5,] 10 20 30

Вот как работала функцияswap() в этом сценарии:

  • К каждому значению в первом столбце было добавлено 5 .
  • К каждому значению во втором столбце было добавлено 10 .
  • К каждому значению в третьем столбце было добавлено 15 .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как создать пустую матрицу в R
Как преобразовать фрейм данных в матрицу в R
Как построить строки матрицы в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.