Como usar a função scan em r (com exemplos)


Você pode usar a função swep() em R para realizar certas operações nas linhas ou colunas de uma matriz.

Esta função usa a seguinte sintaxe básica:

 sweep(x, MARGIN, STATS, FUN)

Ouro:

  • x : nome da matriz
  • MARGEM : A margem na qual executar a função (1=linhas, 2=colunas)
  • STATS : O(s) valor(es) a ser(em) usado(s) na função
  • FUN : A função a ser executada

Os exemplos a seguir mostram como usar a função swep() em diferentes cenários em R.

Exemplo 1: Use swep() para realizar uma operação em linhas

O código a seguir mostra como usar a função swep() para adicionar um número específico aos valores em cada linha da matriz:

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

#view matrix
mast

     [,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

Veja como a função swep() funcionou neste cenário:

  • 5 foi adicionado a cada valor na primeira linha.
  • 10 foi adicionado a cada valor na segunda linha.
  • 15 foi adicionado a cada valor na terceira linha.
  • 20 foi adicionado a cada valor na quarta linha.
  • 25 foi adicionado a cada valor na quinta linha.

Observe que neste exemplo usamos a adição (+) como operação matemática a ser realizada, mas poderíamos optar por usar uma operação diferente.

Por exemplo, o código a seguir mostra como multiplicar os valores de cada linha por determinados números:

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

#view matrix
mast

     [,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

Exemplo 2: Use scan() para realizar uma operação em colunas

O código a seguir mostra como usar a função swep() para adicionar um número específico aos valores em cada coluna da matriz:

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

#view matrix
mast

     [,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

Veja como a função swep() funcionou neste cenário:

  • 5 foi adicionado a cada valor na primeira coluna.
  • 10 foi adicionado a cada valor na segunda coluna.
  • 15 foi adicionado a cada valor na terceira coluna.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em R:

Como criar uma matriz vazia em R
Como converter um dataframe em uma matriz em R
Como plotar linhas de uma matriz em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *