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