Välkommen till kursen!

Datamanipulering med data.table i R

Matt Dowle and Arun Srinivasan

Instructors, DataCamp

Vad är en data.table?

  • Förbättrad data.frame
    • Ärver från och utökar data.frame
  • Kolumnbaserad datastruktur
  • Alla kolumner måste ha samma längd men kan ha olika typ
Datamanipulering med data.table i R

Varför använda data.table?

  • Koncis och konsekvent syntax
    • Tänk i termer av rows, columns och groups
    • Tillhandahåller en platshållare för var och en
# General form of data.table syntax
DT[i, j, by]
   |  |  |
   |  |  --> grouped by what?
   |  -----> what to do?
   --------> on which rows?
Datamanipulering med data.table i R

benchmark

Datamanipulering med data.table i R

Varför använda data.table?

Datamanipulering med data.table i R

Skapa en data.table

Tre sätt att skapa data tables:

  • data.table()
  • as.data.table()
  • fread()
Datamanipulering med data.table i R

Skapa en data.table

library(data.table)
x_df <- data.frame(id = 1:2, name = c("a", "b"))
x_df
id name
 1    a
 2    b
x_dt <- data.table(id = 1:2, name = c("a", "b"))
x_dt
id name
 1    a
 2    b
Datamanipulering med data.table i R

Skapa en data.table

y <- list(id = 1:2, name = c("a", "b"))
y
$id
1 2
$name
"a" "b"
x <- as.data.table(y)
x
id name
 1    a
 2    b
Datamanipulering med data.table i R

data.tables och data.frames (I)

Eftersom en data.table är en data.frame ...

x <- data.table(id = 1:2, 
                name = c("a", "b"))
x
id name
 1    a
 2    b
class(x)
"data.table" "data.frame"
Datamanipulering med data.table i R

data.tables och data.frames (II)

Funktioner för att fråga data.frames fungerar även på data.tables

nrow(x)
2
ncol(x)
2
dim(x)
2 2
Datamanipulering med data.table i R

data.tables och data.frames (III)

En data table konverterar aldrig automatiskt teckenkol­umner till faktorer

x_df <- data.frame(id = 1:2, name = c("a", "b"))
class(x_df$name)
"factor"
x_dt <- data.table(id = 1:2, name = c("a", "b"))
class(x_dt$name)
"character"
Datamanipulering med data.table i R

data.tables och data.frames (IV)

Anger, behöver eller använder aldrig radnamn

rownames(x_dt) <- c("R1", "R2")
x_dt
   id name
1:  1    a
2:  2    b
Datamanipulering med data.table i R

Nu kör vi en övning!

Datamanipulering med data.table i R

Preparing Video For Download...