Articles of data.table

Esempio di righe casuali all’interno di ciascun gruppo in un data.table

Come useresti data.table per prendere in modo efficiente un campione di righe all’interno di ciascun gruppo in un frame di dati? DT = data.table(a = sample(1:2), b = sample(1:1000,20)) DT ab 1: 2 562 2: 1 183 3: 2 180 4: 1 874 5: 2 533 6: 1 21 7: 2 57 8: 1 20 […]

Inserisci i valori mancanti per gruppo in data.table

Se si vuole riempire i valori mancanti di una variabile sulla base dell’osservazione precedente / posteriore di NA all’interno di un gruppo, il comando data.table è setkey(DT,id,date) DT[, value_filled_in := DT[!is.na(value), list(id, date, value)][DT[, list(id, date)], value, roll = TRUE]] che è abbastanza complesso. È un peccato perché roll è un’opzione molto veloce e potente […]

È ansible utilizzare la funzione R dati.table foverlaps per trovare l’intersezione di intervalli sovrapposti in due tabelle?

Vorrei usare i foverlaps per trovare gli intervalli intersecanti dei file di due letti e comprimere qualsiasi riga contenente intervalli sovrapposti in una singola riga. Nell’esempio seguente ho due tabelle con intervalli genomici. Le tabelle sono chiamate file “bed” che hanno coordinate di inizio basate su zero e posizioni finali basate su uno di feature […]

Aggiorna sottoinsieme di data.table in base al join

Ho due tabelle dati, DT1 e DT2: set.seed(1) DT1<-data.table(id1=rep(1:3,2),id2=sample(letters,6), v1=rnorm(6), key="id2") DT1 ## id1 id2 v1 ## 1: 2 e 0.7383247 ## 2: 1 g 1.5952808 ## 3: 2 j 0.3295078 ## 4: 3 n -0.8204684 ## 5: 3 s 0.5757814 ## 6: 1 u 0.4874291 DT2<-data.table(id2=c("n","u"), v1=0, key="id2") DT2 ## id2 v1 ## 1: […]

Creazione di variabili fittizie in R data.table

Sto lavorando con un set di dati estremamente grande in R e ho operato con i frame di dati e ho deciso di passare a data.tables per velocizzare le operazioni. Ho difficoltà a capire le operazioni di J, in particolare sto cercando di generare variabili dummy ma non riesco a capire come codificare le operazioni […]

Perché AS.Date è lento su un vettore di caratteri?

Ho iniziato a utilizzare il pacchetto data.table in R per migliorare le prestazioni del mio codice. Sto usando il seguente codice: sp500 <- read.csv('../rawdata/GMTSP.csv') days <- c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday") # Using data.table to get the things much much faster sp500 <- data.table(sp500, key="Date") sp500 <- sp500[,Date:=as.Date(Date, "%m/%d/%Y")] sp500 <- sp500[,Weekday:=factor(weekdays(sp500[,Date]), levels=days, ordered=T)] sp500 <- sp500[,Year:=(as.POSIXlt(Date)$year+1900)] sp500 <- […]

Usando nomi di colonne dinamici in `data.table`

Voglio calcolare la media di ciascuna delle diverse colonne in un data.table, raggruppate per un’altra colonna. La mia domanda è simile ad altre due domande su SO ( uno e due ), ma non ho potuto applicare quelle sul mio problema. Ecco un esempio: library(data.table) dtb <- fread(input = "condition,var1,var2,var3 one,100,1000,10000 one,101,1001,10001 one,102,1002,10002 two,103,1003,10003 two,104,1004,10004 […]

Passa il nome della colonna in data.table usando la variabile

Possibile duplicato: Selezione / assegnazione variabili ai campi in un data.table Nell’esempio seguente, sto creando una tabella dati con i nomi di colonna ‘x’ e ‘v’ library(‘data.table’) DT <- data.table(x = c("b","b","b","a","a"), v = rnorm(5)) Posso accedere ai valori della colonna ‘x’ per: DT[ , x] # [1] “b” “b” “b” “a” “a” Ma se […]

Aggiungi più colonne a R data.table in una chiamata di funzione?

Ho una funzione che restituisce due valori in una lista. Entrambi i valori devono essere aggiunti a un data.table in due nuove colonne. La valutazione della funzione è costosa, quindi vorrei evitare di dover calcolare la funzione due volte. Ecco l’esempio: library(data.table) example(data.table) DT xyv 1: a 1 42 2: a 3 42 3: a […]

Cosa significa .SD in data.table in R

.SD sembra utile ma non so davvero cosa sto facendo con esso. Cosa significa? Perché c’è un periodo precedente (punto). Cosa sta succedendo quando lo uso? Ho letto: .SD è un data.table contenente il sottoinsieme dei dati di x per ciascun gruppo, esclusa la / e colonna / e del gruppo. Può essere usato quando […]