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 a 2
  • A seta vermelha seleciona o coluna 1
  • A seta azul seleciona o linhas 1 a 3 e colunas 3 a 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 pelos seus nomes. Por exemplo, o cรณdigo abaixo extracPossui 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

Resuma esta postagem com: