Quando se executa a instrução notas[3], o R busca na memória do computador a localização do vetor que tem o nome notas. Como foi visto, um vetor é um objeto na memória do R que pode ser imaginado como uma coluna empilhada com valores, com cada linha identificada por um índice numérico. Vetores possuem propriedades como tipo (numeric) e tamanho (length = 10). Ao encontrar o vetor notas, o R segue à procura do índice igual à 3, que é o que está indicado pela notação [3]. Ao encontrar o valor correspondente ao índice, o R devolve o valor armazenado correspondente: 8.5.
O valor do índice pode ser passado através de um outro objeto, como caso notas[i]. Pode-se recuperar mais de um valor de uma só vez, passando um vetor como parâmetro.
Por exemplo, notas[1:5] retorna as notas do índice 1 até o número 5: 7.5 10.0 8.5 7.0 9.0.
Já a instrução notas[c(1,5)] retorna a primeira e a quinta nota: 7.5 9.0. A função c() foi necessária porque o operador de subconjuntos [] requer um objeto do tipo vetor como parâmetro. A função c() combina uma sequência de números em um objeto do tipo vetor. Essa função será muito utilizada na seleção de valores no R . No primeiro exemplo notas[1:5] os números 1:5 não precisam estar dentro da função c() porque o operador de sequência : já retorna um vetor como resultado. Ou seja, 1:5 é o mesmo que c(1,2,3,4,5).
Podemos também usar um operador lógico para extrair os subconjuntos em um vetor. Por exemplo, vamos verificar quais foram as notas menores do que 7