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).
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 …
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 …
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 …
.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, …
Niedawno natknąłem się na bibliotekę pand dla Pythona, która według tego testu porównawczego wykonuje bardzo szybkie połączenia w pamięci. Jest nawet szybszy niż pakiet data.table w R (mój język do analizy). Dlaczego jest pandaso wiele szybszy niż data.table? Czy to z powodu nieodłącznej przewagi szybkości, jaką Python ma nad R, …
Z ramki danych, istnieje łatwy sposób agregować ( sum, mean, maxet c) wielu zmiennych jednocześnie? Poniżej kilka przykładowych danych: 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)) x2 = cumsum(rnorm(days, 0.05)) df1 = data.frame(date, year, …
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ć …
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ę …
Jak możemy wybrać wiele kolumn za pomocą wektora ich indeksów numerycznych (pozycji) w data.table? Oto jak zrobilibyśmy z data.frame: df <- data.frame(a = 1, b = 2, c = 3) df[ , 2:3] # b c # 1 2 3
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 …
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?
Jaki jest najlepszy sposób przypisywania do wielu kolumn przy użyciu data.table? Na przykład: f <- function(x) {c("hi", "hello")} x <- data.table(id = 1:10) Chciałbym zrobić coś takiego (oczywiście ta składnia jest niepoprawna): x[ , (col1, col2) := f(), by = "id"] Aby to rozszerzyć, mogę mieć wiele kolumn z nazwami …
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 …
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, …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.