R Data Frame: creëren, toevoegen, selecteren en subsetten
Wat is een dataframe?
A dataframe is een lijst met vectoren die even lang zijn. Een matrix bevat slechts één type gegevens, terwijl een dataframe verschillende gegevenstypen accepteert (numeriek, teken, factor, enz.).
Hoe u een dataframe maakt
We kunnen er een dataframe in maken R door de variabele a,b,c,d door te geven aan de data.frame() functie. We kunnen een dataframe maken en de kolommen een naam geven met name() en eenvoudig de naam van de variabelen opgeven.
data.frame(df, stringsAsFactors = TRUE)
argumenten:
- df: Het kan een matrix zijn die moet worden omgezet als een dataframe of een verzameling variabelen die moet worden samengevoegd
- stringsAsFactors: Tekenreeks standaard omzetten naar factor
We kunnen een dataframe in R maken voor onze eerste dataset door vier variabelen van dezelfde lengte te combineren.
# 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
Output:
## 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
We kunnen zien dat de kolomkoppen dezelfde naam hebben als de variabelen. We kunnen de kolomnaam in R wijzigen met de functie namen(). Bekijk het R create dataframe-voorbeeld hieronder:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Output:
## 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)
Output:
## '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
Standaard retourneert dataframe tekenreeksvariabelen als een factor.
Segmentgegevensframe
Het is mogelijk om waarden van een dataframe te SLICE-en. We selecteren de rijen en kolommen die tussen haakjes moeten worden geplaatst, voorafgegaan door de naam van het dataframe.
Een dataframe is samengesteld uit rijen en kolommen, df[A, B]. A vertegenwoordigt de rijen en B de kolommen. We kunnen segmenteren door de rijen en/of kolommen op te geven.
Op afbeelding 1 vertegenwoordigt het linkerdeel de rijen, en het rechterdeel is de kolommen. Merk op dat het symbool: betekent naar. 1:3 is bijvoorbeeld bedoeld om waarden uit 1 te selecteren naar 3.
In het onderstaande diagram laten we zien hoe u toegang krijgt tot verschillende selecties van het dataframe:
- De gele pijl selecteert de rij 1 in kolom 2
- De groene pijl selecteert de rijen 1 tot 2
- De rode pijl selecteert de kolom 1
- De blauwe pijl selecteert de rijen 1 tot 3 en kolommen 3 tot 4
Merk op dat, als we het linkerdeel leeg laten, R zal selecteren alle rijen. Naar analogie: als we het rechterdeel blanco laten, zal R selecteren alle kolommen.
We kunnen de code in de console uitvoeren:
## Select row 1 in column 2 df[1,2]
Output:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Output:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Output:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Output:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Het is ook mogelijk om de kolommen met hun naam te selecteren. De onderstaande code extraheert bijvoorbeeld twee kolommen: ID en winkel.
# Slice with columns name df[, c('ID', 'store')]
Output:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Voeg een kolom toe aan het gegevensframe
U kunt ook een kolom aan een dataframe toevoegen. U moet het symbool $ gebruiken om dataframe R-variabele toe te voegen en een kolom toe te voegen aan een dataframe in R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Output:
## 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
Let op: Het aantal elementen in de vector moet gelijk zijn aan het aantal elementen in het dataframe. De volgende instructie uitvoeren om een kolom toe te voegen aan dataframe R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Geeft fout:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Selecteer een kolom van een gegevensframe
Soms moeten we een kolom van een data frame opslaan voor toekomstig gebruik of een bewerking op een kolom uitvoeren. We kunnen het $ teken gebruiken om de kolom uit een data frame te selecteren.
# Select the column ID df$ID
Output:
## [1] 1 2 3 4
Subset een gegevensframe
In de vorige sectie hebben we een volledige kolom zonder voorwaarde geselecteerd. Het is mogelijk om subgroep op basis van het feit of een bepaalde voorwaarde al dan niet waar was.
We gebruiken de functie subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
We willen alleen de artikelen retourneren met een prijs boven de 10, we kunnen het volgende doen:
# Select price above 5 subset(df, subset = price > 5)
Output:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7