R Dataramme: Sådan oprettes, tilføjes, vælges og undersæt
Hvad er en dataramme?
A dataramme er en liste over vektorer, der er lige lange. En matrix indeholder kun én type data, mens en dataramme accepterer forskellige datatyper (numerisk, tegn, faktor osv.).
Sådan opretter du en dataramme
Vi kan oprette en dataramme i R ved at overføre variablen a,b,c,d til data.frame()-funktionen. Vi kan R oprette en dataramme og navngive kolonnerne med name() og blot angive navnet på variablerne.
data.frame(df, stringsAsFactors = TRUE)
argumenter:
- df: Det kan være en matrix, der skal konverteres som en dataramme eller en samling af variable, der skal forbindes
- stringsAsFactors: Konverter streng til faktor som standard
Vi kan oprette en dataramme i R for vores første datasæt ved at kombinere fire variable af samme længde.
# 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
Vi kan se kolonneoverskrifterne har samme navn som variablerne. Vi kan ændre kolonnenavn i R med funktionen navne(). Tjek R-opret dataramme-eksemplet nedenfor:
# 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
Som standard returnerer dataramme strengvariabler som en faktor.
Udsnit dataramme
Det er muligt at SLICE værdier af en dataramme. Vi vælger de rækker og kolonner, der skal vendes tilbage i parentes foran navnet på datarammen.
En dataramme er sammensat af rækker og kolonner, df[A, B]. A repræsenterer rækkerne og B kolonnerne. Vi kan skære enten ved at specificere rækkerne og/eller kolonnerne.
Fra billede 1 repræsenterer den venstre del rækker, og den højre del er kolonner. Bemærk at symbolet : betyder til. For eksempel har 1:3 til hensigt at vælge værdier fra 1 til 3.
I nedenstående diagram viser vi, hvordan du får adgang til forskellige valg af datarammen:
- Den gule pil vælger række 1 i kolonne 2
- Den grønne pil vælger rækker 1 til 2
- Den røde pil vælger kolonne 1
- Den blå pil vælger rækker 1 til 3 og kolonner 3 til 4
Bemærk, at hvis vi lader venstre del tom, vil R vælge alle rækkerne. Analogt, hvis vi lader den højre del være tom, vil R vælge alle kolonnerne.
Vi kan køre koden i konsollen:
## 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
Det er også muligt at vælge kolonnerne med deres navne. For eksempel udtrækker koden nedenfor to kolonner: ID og butik.
# Slice with columns name
df[, c('ID', 'store')]
Output:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Føj en kolonne til dataramme
Du kan også tilføje en kolonne til en dataramme. Du skal bruge symbolet $ for at tilføje dataramme R-variabel og tilføje en kolonne til en dataramme i 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
Bemærk: Antallet af elementer i vektoren skal være lig med antallet af elementer i datarammen. Udførelse af følgende sætning for at tilføje kolonne til dataramme R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Giver fejl:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Vælg en kolonne i en dataramme
Nogle gange er vi nødt til at gemme en kolonne i en dataramme til fremtidig brug eller udføre operation på en kolonne. Vi kan bruge $-tegnet til at vælge kolonnen fra en dataramme.
# Select the column ID df$ID
Output:
## [1] 1 2 3 4
Delsæt en dataramme
I det foregående afsnit valgte vi en hel kolonne uden betingelse. Det er muligt at delmængde baseret på, om en bestemt betingelse var sand eller ej.
Vi bruger subset()-funktionen.
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Vi ønsker kun at returnere varer med en pris over 10, vi kan gøre:
# 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


