Como para extrair os valores a partir 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:

gt; 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 anymore.

Video: Extrair dados de uma planilha para outra com base em um critério

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 fila de sua primeira matriz como este:

gt; 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

Você pode deixar cair os 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:

gt; first.matrix [-2, -3] [, 1] [, 2] [, 3] [1,] 1 4 10 [2], 3 6 12

Com matrizes, um índice negativo sempre significa: “Solte a linha ou coluna completa” 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:



gt; nr lt; - nrow (first.matrix) gt; identidade lt; - nr * 2 + 2gt; 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.

    Video: EQUAÇÃO GERAL DA RETA E MATRIZ DETERMINANTE - Geometria Analítica

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

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

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

  3. Utilizar a unidimensional extracção vetor [] a cair este valor.

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

gt; 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ê precisar do seu código seja executado o mais rápido possível.


Publicações relacionadas