Como extrair valores de uma matriz em R

Você pode usar esses índices da mesma maneira que você usa vetores em R. Você pode atribuir e extrair valores, usam índices numéricos ou lógicos, drop valores usando um sinal de menos, e assim por diante.

Como usar índices numéricos em R

Por exemplo, você pode extrair os valores nas duas primeiras linhas e as duas últimas colunas com o seguinte código:

> First.matrix [1: 2, 2: 3] [, 1] [, 2] [1,] 4 7 [2,] 5 8

R retorna uma matriz novamente. Preste atenção aos índices desta nova matriz - eles não são os índices da matriz original mais.

R lhe dá uma maneira fácil de extrair linhas e colunas completas a partir de uma matriz. Você simplesmente não especificar a outra dimensão. Então, você começa a segunda e terceira filas de sua primeira matriz como este:

> First.matrix [2: 3,] [, 1] [, 2] [, 3] [, 4] [1,] 2 5 8 11 [2,] 3 6 9 12

Como a cair valores usando índices negativos

Pode soltar valores em um vetor usando um valor negativo para o índice. Este pequeno truque funciona perfeitamente bem com matrizes, também. Assim, você pode obter todos os valores, exceto a segunda linha e terceira coluna first.matrix como isso:

> First.matrix [-2, -3] [, 1] [, 2] [, 3] [1,] 1 4 10 [2], 12 3 6

Com matrizes, um índice negativo significa sempre: # 147 soltar a linha ou coluna completa. # 148- Se você quer deixar cair apenas o elemento na segunda linha ea terceira coluna, você tem que tratar a matriz como um vetor. Então, neste caso, você deixa cair o segundo elemento na terceira coluna como esta:

> nr lt; - nrow (first.matrix)> id lt; - nr * 2 + 2> first.matrix [-id] [1] 1 2 3 4 5 6 7 9 10 11 12

Isso retorna um vetor, porque os 11 elementos restantes não se encaixam em uma matriz mais. Agora, o que aconteceu aqui exatamente? Lembre-se que as matrizes são lidos coluna-wise. Para obter o segundo elemento na terceira coluna, você precisa fazer o seguinte:

  1. Contar o número de linhas, utilizando nrow (), e armazenar isso em uma variável - por exemplo, nr.

    Você não tem que fazer isso, mas torna o código mais fácil de ler.

  2. Contagem de duas colunas e, em seguida, adicionar 2 para obter o segundo elemento na terceira coluna.

    Novamente armazenar este resultado em uma variável (por exemplo, identidade).

  3. Use o unidimensional extração vector [] a cair este valor.

Você pode fazer isso em uma linha, como este:

> First.matrix [- (2 * nrow (first.matrix) + 2)] [1] 1 2 3 4 5 6 7 9 10 11 12

Este é apenas um exemplo de como você pode trabalhar com índices durante o tratamento de uma matriz como um vetor. Ele requer um pouco de pensar no início, mas truques como estes podem oferecer soluções muito arrumado para os problemas mais complexos, bem como, especialmente se você precisa de seu código seja executado o mais rápido possível.

menu