Pytania otagowane jako data.table

Pakiet R data.table jest rozszerzeniem pliku data.frame zbudowanym w celu szybkiej analizy danych w pamięci. Użyj tagu dt dla pakietu DataTables z Shiny (DT).

3
data.table vs dplyr: czy można zrobić coś dobrze, a drugiego nie, lub źle?
Przegląd Jestem względnie obeznany data.table, ale nie bardzo dplyr. Przeczytałem niektóre dplyrwiniety i przykłady, które pojawiły się na SO, i jak dotąd moje wnioski są następujące: data.tablei dplyrsą porównywalne pod względem prędkości, z wyjątkiem sytuacji, gdy istnieje wiele (tj.> 10–100 tys.) grup oraz w niektórych innych okolicznościach (patrz punkty odniesienia …
758 r  data.table  dplyr 

8
Jak usunąć kolumnę według nazwy w data.table?
Aby pozbyć się kolumny o nazwie „foo” w data.frame, mogę: df <- df[-grep('foo', colnames(df))] Jednak po dfprzekonwertowaniu na data.tableobiekt nie ma sposobu, aby po prostu usunąć kolumnę. Przykład: 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))] Ale po przekształceniu …
195 r  data.table 

2
Zrozumienie, kiedy data.table jest odniesieniem do (zamiast kopii) innego data.table
Mam mały problem ze zrozumieniem właściwości przejścia przez odniesienie data.table. Niektóre operacje wydają się „łamać” odniesienie i chciałbym dokładnie zrozumieć, co się dzieje. Po utworzeniu data.tablez innego data.table(poprzez <-, a następnie aktualizację nowej tabeli o :=, oryginalna tabela również ulega zmianie. Jest to oczekiwane, zgodnie z: ?data.table::copy i stackoverflow: pass-by-reference-the-operator-in-the-data-table-package …

3
Co oznacza .SD w data.table w R
.SDwygląda na przydatne, ale tak naprawdę nie wiem, co z nim robię. Co to oznacza? Dlaczego występuje poprzednia kropka (kropka). Co się dzieje, gdy go używam? Czytałem: .SDto zbiór data.tablezawierający podzbiór xdanych dla każdej grupy, z wyłączeniem kolumn grup. Może być używany podczas grupowania według i, podczas grupowania według by, …
173 r  data.table 



6
Jak usunąć wiersz przez odwołanie w data.table?
Moje pytanie dotyczy przydzielania zadań przez referencje a kopiowania data.table. Chcę wiedzieć, czy można usuwać wiersze przez odniesienie, podobnie do DT[ , someCol := NULL] Chcę wiedzieć DT[someRow := NULL, ] Wydaje mi się, że istnieje dobry powód, dla którego ta funkcja nie istnieje, więc może po prostu możesz wskazać …
150 r  data.table 

10
Najszybszy sposób na zastąpienie NA w dużej tabeli danych
Mam dużą tabelę danych z wieloma brakującymi wartościami rozrzuconymi po ~ 200 tys. Wierszach i 200 kolumnach. Chciałbym ponownie zakodować te wartości NA zera tak efektywnie, jak to możliwe. Widzę dwie opcje: 1: Konwertuj na ramkę danych i użyj czegoś takiego 2: Jakieś fajne polecenie ustawienia podrzędnego danych. Tabeli Będę …


17
Zastąpienie NA najnowszą wartością inną niż NA
W data.frame (lub data.table) chciałbym „wypełnić do przodu” NA najbliższą poprzednią wartością inną niż NA. Prosty przykład użycia wektorów (zamiast a data.frame) jest następujący: > y <- c(NA, 2, 2, NA, NA, 3, NA, 4, NA, NA) Chciałbym mieć funkcję, fill.NAs()która pozwoliłaby mi skonstruować yy: > yy [1] NA NA …
141 r  data.table  zoo  r-faq 

2
Dlaczego rbindlist jest „lepszy” niż rbind?
Przeglądam dokumentację data.tablei zauważyłem z niektórych rozmów tutaj na SO, który rbindlistpowinien być lepszy niż rbind. Chciałbym wiedzieć, dlaczego jest rbindlistlepszy niż rbindiw których scenariuszach rbindlistnaprawdę się sprawdza rbind? Czy jest jakaś korzyść pod względem wykorzystania pamięci?
135 r  data.table  rbind  rbindlist 


3
Sortuj wiersze w data.table w kolejności malejącej na kluczu ciągu `order (-x, v)` daje błąd w data.table 1.9.4 lub wcześniej
Powiedzmy, że mam następujący data.tablew R: library(data.table) DT = data.table(x=rep(c("b","a","c"),each=3), y=c(1,3,6), v=1:9) Chcę uporządkować według dwóch kolumn (powiedzmy kolumny xi v). Użyłem tego: DT[order(x,v)] # sorts first by x then by v (both in ascending order) Ale teraz chcę to posortować x(w porządku malejącym) i mam następujący kod: DT[order(-x)] #Error …
125 r  string  sorting  data.table  key 

3
Dlaczego łączenie X [Y] data.tables nie zezwala na pełne sprzężenie zewnętrzne lub łączenie lewe?
To jest trochę filozoficzne pytanie dotyczące składni łączenia danych. Znajduję coraz więcej zastosowań dla danych. Tabele, ale wciąż się uczę ... Format sprzężenia X[Y]dla data.tables jest bardzo zwięzły, poręczny i wydajny, ale o ile wiem, obsługuje tylko sprzężenia wewnętrzne i prawe sprzężenia zewnętrzne. Aby uzyskać lewe lub pełne sprzężenie zewnętrzne, …
123 r  join  data.table 

2
Jak zmienić kolejność kolumn data.table (bez kopiowania)
Chciałbym zmienić kolejność kolumn w moim data.table x, biorąc pod uwagę wektor znaków nazw kolumn neworder: library(data.table) x <- data.table(a = 1:3, b = 3:1, c = runif(3)) neworder <- c("c", "b", "a") Oczywiście mogłem zrobić: x[ , neworder, with = FALSE] # or x[ , ..neworder] # c b …
118 r  data.table 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.