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).
Mam problem z użyciem data.table: Jak przekonwertować klasy kolumn? Oto prosty przykład: z data.frame nie mam problemu z konwersją, z data.table po prostu nie wiem jak: df <- data.frame(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10)) #One way: http://stackoverflow.com/questions/2851015/r-convert-data-frame-columns-from-factors-to-characters df <- data.frame(lapply(df, as.character), stringsAsFactors=FALSE) #Another way df[, "value"] <- as.numeric(df[, "value"]) library(data.table) …
Używam data.table i jest wiele funkcji, które wymagają ustawienia klucza (np X[Y].). W związku z tym chciałbym zrozumieć, co robi klucz, aby poprawnie ustawić klucze w moich tabelach danych. Jednym ze źródeł, które przeczytałem, było ?setkey. setkey()sortuje a data.tablei zaznacza jako posortowane. Kluczem są posortowane kolumny. Kluczem mogą być dowolne …
W R mam operację, która tworzy pewne Infwartości, gdy przekształcam ramkę danych. Chciałbym zamienić te Infwartości na NAwartości. Kod, który mam, jest wolny w przypadku dużych danych, czy istnieje szybszy sposób na zrobienie tego? Powiedzmy, że mam następującą ramkę danych: dat <- data.frame(a=c(1, Inf), b=c(Inf, 3), d=c("a","b")) W jednym przypadku …
Na przykład (nie jestem pewien, czy jest to najbardziej reprezentatywny przykład): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) Oto, co mam do tej pory: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") …
Jak odnosisz się do zmiennych w a, data.tablejeśli nazwy zmiennych są przechowywane w wektorze znakowym? Na przykład działa to w przypadku data.frame: df <- data.frame(col1 = 1:3) colname <- "col1" df[colname] <- 4:6 df # col1 # 1 4 # 2 5 # 3 6 Jak mogę wykonać tę samą …
Jeśli używam składni dplyr na szczycie datatable , czy uzyskam wszystkie korzyści związane z szybkością datatable, nadal używając składni dplyr? Innymi słowy, czy niewłaściwie używam datatable, jeśli wykonuję zapytanie za pomocą składni dplyr? Czy też muszę używać czystej składni datatable, aby wykorzystać całą jego moc. Z góry dziękuję za wszelkie …
data.tableobiekty mają teraz operator: =. Co sprawia, że ten operator różni się od wszystkich innych operatorów przypisania? Jakie są jego zastosowania, o ile jest szybszy i kiedy należy go unikać?
Mam skrypt, który wczytuje dane z pliku CSV do a, data.tablea następnie dzieli tekst w jednej kolumnie na kilka nowych kolumn. Obecnie używam tych lapplyi strsplitfunkcji, aby to zrobić. Oto przykład: library("data.table") df = data.table(PREFIX = c("A_B","A_C","A_D","B_A","B_C","B_D"), VALUE = 1:6) dt = as.data.table(df) # split PREFIX into new columns dt$PX …
Mam tabelę danych, z którą chciałbym wykonać tę samą operację na niektórych kolumnach. Nazwy tych kolumn są podane w wektorze znakowym. W tym konkretnym przykładzie chciałbym pomnożyć wszystkie te kolumny przez -1. Niektóre dane zabawki i wektor określający odpowiednie kolumny: library(data.table) dt <- data.table(a = 1:3, b = 1:3, d …
Jestem w trakcie wypróbowywania przepływu pracy opartego na dplyr (zamiast używania głównie data.table, do czego jestem przyzwyczajony) i napotkałem problem, do którego nie mogę znaleźć równoważnego rozwiązania dplyr . Często spotykam się ze scenariuszem, w którym muszę warunkowo zaktualizować / wymienić kilka kolumn na podstawie jednego warunku. Oto przykładowy kod …
Jest wiele postów dotyczących zastępowania wartości NA. Zdaję sobie sprawę, że w poniższej tabeli / ramce można zastąpić NA: x[is.na(x)]<-0 Ale co, jeśli chcę ograniczyć to tylko do niektórych kolumn? Pokażę ci przykład. Najpierw zacznijmy od zbioru danych. set.seed(1234) x <- data.frame(a=sample(c(1,2,NA), 10, replace=T), b=sample(c(1,2,NA), 10, replace=T), c=sample(c(1:5,NA), 10, replace=T)) …
Chcę utworzyć nową kolumnę w tabeli data.table obliczoną na podstawie bieżącej wartości jednej kolumny i poprzedniej w drugiej. Czy jest możliwy dostęp do poprzednich rzędów? Na przykład: > DT <- data.table(A=1:5, B=1:5*10, C=1:5*100) > DT A B C 1: 1 10 100 2: 2 20 200 3: 3 30 300 …
Mam dużą ramkę danych (rzędu kilku GB), którą chciałbym przekonwertować na plik data.table. Użycie as.data.tabletworzy kopię ramki danych, co oznacza, że potrzebuję dostępnej pamięci co najmniej dwukrotnie większej niż dane. Czy istnieje sposób na wykonanie konwersji bez kopii? Oto prosty przykład do zademonstrowania: library(data.table) N <- 1e6 K <- 1e2 …
Chciałem wypełnić niektóre wartości NA w tabeli danych bez grup. Proszę wziąć pod uwagę ten wyciąg danych. Tabela reprezentująca czas i odległości: library(data.table) df <- data.frame(time = seq(7173, 7195, 1), dist = c(31091.33, NA, 31100.00, 31103.27, NA, NA, NA, NA, 31124.98, NA,31132.81, NA, NA, NA, NA, 31154.19, NA, 31161.47, NA, …
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.