Quadro de dados R: como criar, anexar, selecionar e subconjunto

O que é um quadro de dados?

A quadro de dados é uma lista de vetores de igual comprimento. Uma matriz contém apenas um tipo de dados, enquanto um quadro de dados aceita diferentes tipos de dados (numéricos, caracteres, fatores, etc.).

Como criar um quadro de dados

Podemos criar um dataframe em R passando a variável a,b,c,d para a função data.frame(). Podemos R criar dataframe e nomear as colunas com name() e simplesmente especificar o nome das variáveis.

data.frame(df, stringsAsFactors = TRUE)

Argumentos:

  • df: Pode ser uma matriz para converter como um quadro de dados ou uma coleção de variáveis ​​para juntar
  • stringsAsFactors: Converte string em fator por padrão

Podemos criar um dataframe em R para nosso primeiro conjunto de dados combinando quatro variáveis ​​do mesmo comprimento.

# Create a, b, c, d variables
a <- c(10,20,30,40)
b <- c('book', 'pen', 'textbook', 'pencil_case')
c <- c(TRUE,FALSE,TRUE,FALSE)
d <- c(2.5, 8, 10, 7)
# Join the variables to create a data frame
df <- data.frame(a,b,c,d)
df

Saída:

##     a         b     c     d
## 1  10        book  TRUE   2.5
## 2  20         pen  FALSE  8.0
## 3  30    textbook  TRUE   10.0
## 4  40 pencil_case  FALSE  7.0

Podemos ver que os cabeçalhos das colunas têm o mesmo nome das variáveis. Podemos alterar o nome da coluna em R com os nomes da função(). Verifique o exemplo de criação de dataframe do R abaixo:

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

Saída:

##   ID       items store price
## 1 10        book  TRUE   2.5
## 2 20         pen FALSE   8.0
## 3 30    textbook  TRUE  10.0
## 4 40 pencil_case FALSE   7.0
# Print the structure
str(df)

Saída:

## 'data.frame':    4 obs. of  4 variables:
##  $ ID   : num  10 20 30 40
##  $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
##  $ store: logi  TRUE FALSE TRUE FALSE
##  $ price: num  2.5 8 10 7

Por padrão, o quadro de dados retorna variáveis ​​de string como um fator.

Quadro de dados de fatia

É possível fatiar valores de um quadro de dados. Selecionamos as linhas e colunas para retornar aos colchetes precedidas do nome do quadro de dados.

Um quadro de dados é composto de linhas e colunas, df[A, B]. A representa as linhas e B as colunas. Podemos fatiar especificando as linhas e/ou colunas.

Na figura 1, a parte esquerda representa o filas, e a parte certa é a colunas. Observe que o símbolo : significa para. Por exemplo, 1:3 pretende selecionar valores de 1 para 3.

Quadro de dados de fatia

No diagrama abaixo, mostramos como acessar diferentes seleções do quadro de dados:

  • A seta amarela seleciona o linha 1 em coluna 2
  • A seta verde seleciona o linhas (1 - 2)
  • A seta vermelha seleciona o coluna 1
  • A seta azul seleciona o linhas 1 a 3 e colunas (3 - 4)

Observe que, se deixarmos a parte esquerda em branco, R selecionará todas as linhas. Por analogia, se deixarmos a parte direita em branco, R selecionará todas as colunas.

Quadro de dados de fatia

Podemos executar o código no console:

## Select row 1 in column 2
df[1,2]

Saída:

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

Saída:

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

Saída:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

Saída:

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

Também é possível selecionar as colunas com seus nomes. Por exemplo, o código abaixo extrai duas colunas: ID e loja.

# Slice with columns name
df[, c('ID', 'store')]

Saída:

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

Anexar uma coluna ao quadro de dados

Você também pode anexar uma coluna a um quadro de dados. Você precisa usar o símbolo $ para anexar a variável R do dataframe e adicionar uma coluna a um dataframe em R.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

Saída:

##   ID       items store price quantity
## 1 10        book  TRUE   2.5       10
## 2 20         pen FALSE   8.0       35
## 3 30    textbook  TRUE  10.0       40
## 4 40 pencil_case FALSE   7.0        5

Nota: O número de elementos no vetor deve ser igual ao número de elementos no quadro de dados. Executando a seguinte instrução para adicionar coluna ao dataframe R

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

Dá erro:

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

Selecione uma coluna de um quadro de dados

Às vezes, precisamos armazenar uma coluna de um quadro de dados para uso futuro ou realizar operações em uma coluna. Podemos usar o sinal $ para selecionar a coluna de um quadro de dados.

# Select the column ID
df$ID

Saída:

## [1] 1 2 3 4

Subconjunto de um quadro de dados

Na seção anterior, selecionamos uma coluna inteira sem condição. É possível subconjunto com base no fato de uma determinada condição ser verdadeira ou não.

Usamos a função subset().

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

Queremos devolver apenas os artigos com preço acima de 10, podemos fazer:

# Select price above 5
subset(df, subset = price > 5)

Saída:

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7