Articles of data.table

efficienti operazioni di riga su un data.table

Ho bisogno di trovare il numero minimo di righe di molti (+60) data.frame relativamente grande (~ 250.000 x 3) (o posso lavorare in modo equivalente su una xts ). set.seed(1000) my.df <- sample(1:5, 250000*3, replace=TRUE) dim(my.df) <- c(250000,3) my.df <- as.data.frame(my.df) names(my.df) <- c("A", "B", "C") Il frame dei dati my.df è simile a questo […]

Rimozione di più colonne da R data.table con parametro per le colonne da rimuovere

Sto cercando di manipolare un numero di data.tables in modi simili e vorrei scrivere una funzione per ottenere questo risultato. Vorrei passare in un parametro che contiene un elenco di colonne in cui verranno eseguite le operazioni. Funziona perfettamente quando la dichiarazione vettoriale di colonne è il lato sinistro dell’operatore: =, ma non se è […]

Eseguire un semi-join con data.table

Come eseguo un semi-join con data.table? Un semi-join è come un join interno tranne che restituisce solo le colonne di X (non anche quelle di Y) e non ripete le righe di X per far corrispondere le righe di Y. Ad esempio, il codice seguente esegue un inner aderire: x <- data.table(x = 1:2, y […]

Come ottenere i numeri delle settimane dalle date?

Cerchi una funzione in R per convertire le date in numeri settimanali (dell’anno) Sono andato per week dal pacchetto data.table . Tuttavia, ho osservato un comportamento strano: > week(“2014-03-16”) # Sun, expecting 11 [1] 11 > week(“2014-03-17”) # Mon, expecting 12 [1] 11 > week(“2014-03-18”) # Tue, expecting 12 [1] 12 Perché il numero della […]

R data.table applica la funzione alle righe usando le colonne come argomenti

Ho i seguenti data.table x = structure(list(f1 = 1:3, f2 = 3:5), .Names = c(“f1”, “f2”), row.names = c(NA, -3L), class = c(“data.table”, “data.frame”)) Vorrei applicare una funzione a ciascuna riga del data.table . La funzione func.test usa args f1 e f2 e fa qualcosa con esso e restituisce un valore calcolato. Supponi (ad esempio) […]

Difficoltà nel convertire una lunga lista di data.frames (~ 1 milione) in single data.frame usando do.call e ldply

So che ci sono molte domande qui in SO su come convertire un elenco di data.frames in un singolo data.frame usando do.call o ldply, ma queste domande riguardano la comprensione del funzionamento interno di entrambi i metodi e il tentativo di capire perché Non riesco neanche a lavorare per concatenare una lista di quasi 1 […]

Nomi di colonne dinamici in data.table

Sto cercando di aggiungere colonne al mio data.table , dove i nomi sono dinamici. Inoltre, ho bisogno di usare l’argomento by quando aggiungo queste colonne. Per esempio: test_dtb <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10,10)) cn <- parse(text = "blah") test_dtb[ , eval(cn) := mean(a), by = id] # Error […]

Forza la codifica del vettore di caratteri da “sconosciuto” a “UTF-8” in R

Ho un problema con la codifica incoerente del vettore di caratteri in R. Il file di testo che ho letto da una tabella è codificato (tramite Notepad++ ) in UTF-8 (ho provato anche con UTF-8 without BOM ). Voglio leggere la tabella da questo file di testo, convertirlo in data.table , impostare una key e […]

Assegnazione elegante di più colonne in data.table con lapply ()

Sto cercando di capire un modo elegante per usare := assegnazione per sostituire più colonne contemporaneamente in un data.table applicando una funzione condivisa. Un tipico utilizzo di questo potrebbe essere l’applicazione di una funzione di stringa (ad esempio, gsub ) a tutte le colonne di caratteri in una tabella. Non è difficile estendere il data.frame […]

Contare il numero di record e generare il numero di riga all’interno di ciascun gruppo in un data.table

Ho i seguenti dati.table set.seed(1) DT <- data.table(VAL = sample(c(1, 2, 3), 10, replace = TRUE)) VAL 1: 1 2: 2 3: 2 4: 3 5: 1 6: 3 7: 3 8: 2 9: 2 10: 1 All’interno di ogni numero in VAL voglio: Contare il numero di record / righe Creare un indice di […]