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.
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.
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