Como Subconjunto de dados Frames em R

Agora que você já revisou as regras para a criação de subconjuntos, você pode experimentá-lo com alguns quadros de dados em R. Você só tem que lembrar que um quadro de dados é um objeto bidimensional e contém linhas, bem como colunas. Isso significa que você precisa especificar o subconjunto de linhas e colunas de forma independente. Para fazer isso, você combinar os operadores.

Para ilustrar subsetting de quadros de dados, ter um olhar para o conjunto de dados built-in íris, um quadro de dados de cinco colunas e 150 linhas com dados sobre flores da íris.

> Str (íris) 'data.frame': 150 obs. de 5 variáveis: $ Sepal.Length: Num 5,1 4,9 4,7 4,6 5 5,4 4,6 5 4,4 4,9 ... $ Sepal.Width: Num 3,5 3 3,2 3,1 3,6 3,9 3,4 3,4 2,9 3,1 ... $ Petal.Length: Num 1,4 1,4 1,3 1,5 1,4 1,7 1,4 1,5 1,4 1,5 ... $ Petal.Width: num 0,2 0,2 ​​0,2 ​​0,2 ​​0,2 ​​0,4 0,3 0,2 0,2 ​​0,1 ... $ Espécie: Fator w / 3 níveis "setosa", "versicolor", ..: 1 1 1 1 1 1 1 1 1 1 ...

Quando você subconjunto objetos com mais de uma dimensão, você especificar o argumento subconjunto para cada dimensão - você separar os argumentos subconjunto com vírgulas.

Por exemplo, para obter as cinco primeiras linhas de íris e todas as colunas, tente o seguinte:

> Iris [1: 5,]

Para obter todas as linhas, mas apenas duas das colunas, tente o seguinte:

> Iris [, c ( "Sepal.Length", "Sepal.Width")]

Você precisa ter um cuidado especial quando subsetting em uma única coluna de um quadro de dados. Tente o seguinte:

iris [ 'Sepal.Length']

Você verá que o resultado é um vetor, não um quadro de dados como seria de esperar.

Quando sua operação subconjunto retorna uma única coluna, o comportamento padrão é retornar uma versão simplificada. A forma como isto funciona é que R inspecciona os comprimentos dos elementos mostrados. Se todos estes elementos têm o mesmo comprimento, então R simplifica o resultado a um vector, matriz ou matriz.

No exemplo, R simplifica o resultado a um vector. Para substituir esse comportamento, você precisa especificar o argumento gota = FALSE em sua operação subconjunto:

> Iris [ 'Sepal.Length', drop = FALSE]

Alternativamente, você pode subdividir a estrutura de dados como uma lista. O código a seguir retorna um quadro de dados com apenas uma coluna, bem como:

> Iris [ 'Sepal.Length']

Finalmente, para obter um subconjunto de apenas algumas colunas e algumas linhas:

> íris [1: 5, C ( "Sepal.Length", "Sepal.Width")] Sepal.Length Sepal.Width1 3,52 4,9 3,03 5,1 4,7 3,24 4,6 3,15 5,0 3,6

menu