Il pacchetto R data.table è un'estensione di data.frame creata per un'analisi rapida dei dati in memoria. Usa il tag dt per il pacchetto DataTables con Shiny (DT).
Panoramica Conosco relativamente data.tablepoco, non tanto dplyr. Ho letto alcune dplyrvignette ed esempi che sono emersi su SO, e finora le mie conclusioni sono che: data.tablee dplyrsono comparabili in termini di velocità, tranne quando ci sono molti gruppi (cioè> 10-100 K) e in alcune altre circostanze (vedere i benchmark di …
Per sbarazzarsi di una colonna denominata "pippo" in a data.frame, posso fare: df <- df[-grep('foo', colnames(df))] Tuttavia, una volta dfconvertito in un data.tableoggetto, non è possibile rimuovere semplicemente una colonna. Esempio: df <- data.frame(id = 1:100, foo = rnorm(100)) df2 <- df[-grep('foo', colnames(df))] # works df3 <- data.table(df) df3[-grep('foo', colnames(df3))] …
Ho qualche problema a capire le proprietà pass-by-reference di data.table. Alcune operazioni sembrano "rompere" il riferimento e mi piacerebbe capire esattamente cosa sta succedendo. Quando si crea un data.tableda un altro data.table(tramite <-, quindi si aggiorna la nuova tabella con :=, anche la tabella originale viene modificata. Questo è previsto, …
.SDsembra utile ma non so davvero cosa ci sto facendo. Cosa significa? Perché c'è un periodo precedente (punto)? Cosa succede quando lo uso? Ho letto: contiene .SDun data.tablesottoinsieme dei xdati di ciascun gruppo, escluse le colonne del gruppo. Può essere utilizzato quando si raggruppano per i, quando si raggruppano per …
Recentemente ho trovato il panda libreria per Python, che secondo questo benchmark esegue molto veloce si fonde in memoria. È anche più veloce del pacchetto data.table in R (la mia lingua preferita per l'analisi). Perché è pandasmolto più veloce di data.table? È a causa di un vantaggio di velocità intrinseco …
Da un frame di dati, c'è un modo semplice per aggregare ( sum, mean, maxet c) più variabili contemporaneamente? Di seguito sono riportati alcuni dati di esempio: library(lubridate) days = 365*2 date = seq(as.Date("2000-01-01"), length = days, by = "day") year = year(date) month = month(date) x1 = cumsum(rnorm(days, 0.05)) …
La mia domanda è relativa all'assegnazione per riferimento rispetto alla copia in data.table. Voglio sapere se uno può eliminare le righe per riferimento, simile a DT[ , someCol := NULL] Voglio sapere DT[someRow := NULL, ] Immagino che ci sia una buona ragione per cui questa funzione non esiste, quindi …
Ho un grande data.table , con molti valori mancanti sparsi nelle sue ~ 200k righe e 200 colonne. Vorrei ricodificare quei valori NA in zeri nel modo più efficiente possibile. Vedo due opzioni: 1: Converti in un data.frame e usa qualcosa del genere 2: Qualche tipo di comando sub settato …
Come possiamo selezionare più colonne usando un vettore dei loro indici numerici (posizione) in data.table? Ecco come faremmo con un data.frame: df <- data.frame(a = 1, b = 2, c = 3) df[ , 2:3] # b c # 1 2 3
In un data.frame (o data.table), vorrei "riempire" le NA con il valore precedente non NA più vicino. Un semplice esempio, utilizzando i vettori (anziché a data.frame) è il seguente: > y <- c(NA, 2, 2, NA, NA, 3, NA, 4, NA, NA) Vorrei una funzione fill.NAs()che mi permettesse di costruire …
Sto esaminando la documentazione data.tablee ho anche notato alcune delle conversazioni qui su SO che rbindlistdovrebbero essere migliori di rbind. Vorrei sapere perché è rbindlistmeglio di rbinde in quali scenari rbindlisteccelle davvero rbind? C'è qualche vantaggio in termini di utilizzo della memoria?
Qual è il modo migliore per assegnare a più colonne usando data.table? Per esempio: f <- function(x) {c("hi", "hello")} x <- data.table(id = 1:10) Vorrei fare qualcosa del genere (ovviamente questa sintassi non è corretta): x[ , (col1, col2) := f(), by = "id"] E per estenderlo, potrei avere molte …
Diciamo che ho il seguente data.tablein R: library(data.table) DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9) Voglio ordinarlo per due colonne (diciamo colonne xe v). Ho usato questo: DT[order(x,v)] # sorts first by x then by v (both in ascending order) Ma ora, voglio ordinarlo per x(in ordine decrescente) e avere il seguente …
Questa è una domanda un po 'filosofica sulla sintassi del join di data.table. Sto trovando sempre più usi per data.tables, ma sto ancora imparando ... Il formato di join X[Y]per data.tables è molto conciso, pratico ed efficiente, ma per quanto ne so, supporta solo inner join e right outer join. …
Mi piacerebbe colonne di riordino nella mia data.table x, dato un carattere vettoriale di nomi di colonna, neworder: library(data.table) x <- data.table(a = 1:3, b = 3:1, c = runif(3)) neworder <- c("c", "b", "a") Ovviamente potrei fare: x[ , neworder, with = FALSE] # or x[ , ..neworder] # …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.