R Language Creare un data.table


Esempio

Un data.table è una versione avanzata della classe data.frame dalla base R. Come tale, l'attributo class() è il vettore "data.table" "data.frame" e le funzioni che funzionano su un data.frame saranno anche funziona con un data.table. Esistono molti modi per creare, caricare o forzare su un data.table.

Costruire

Non dimenticare di installare e attivare il pacchetto data.table

library(data.table)

C'è un costruttore con lo stesso nome:

DT <- data.table(
  x = letters[1:5], 
  y = 1:5, 
  z = (1:5) > 3
)
#    x y     z
# 1: a 1 FALSE
# 2: b 2 FALSE
# 3: c 3 FALSE
# 4: d 4  TRUE
# 5: e 5  TRUE

A differenza di data.frame , data.table non costringerà le stringhe a fattori:

sapply(DT, class)
#               x           y           z 
#     "character"   "integer"   "logical" 

Leggi dentro

Possiamo leggere da un file di testo:

dt <- fread("my_file.csv")

A differenza di read.csv , fread leggerà le stringhe come stringhe, non come fattori.

Modifica un data.frame

Per efficienza, data.table offre un modo per modificare un data.frame o un elenco per creare un data.table sul posto (senza fare una copia o modificare la sua posizione di memoria):

# example data.frame
DF <- data.frame(x = letters[1:5], y = 1:5, z = (1:5) > 3)
# modification
setDT(DF)

Nota che non <- assegna il risultato, poiché l'oggetto DF è stato modificato sul posto. Gli attributi di classe di data.frame verranno mantenuti:

sapply(DF, class)
#         x         y         z 
#  "factor" "integer" "logical" 

Costruire oggetto su data.table

Se hai una list , data.frame o data.table , dovresti usare la funzione setDT per convertire in data.table perché fa la conversione per riferimento invece di fare una copia (cosa che as.data.table fa). Questo è importante se si lavora con dataset di grandi dimensioni.

Se hai un altro oggetto R (come una matrice), devi usare as.data.table per costringerlo a un data.table .

mat <- matrix(0, ncol = 10, nrow = 10)

DT <- as.data.table(mat)
# or
DT <- data.table(mat)