Запитання з тегом «data.table»

Пакет R data.table - це розширення data.frame, створеного для швидкого аналізу даних в пам'яті. Використовуйте тег dt для пакету DataTables з мережею (DT).

8
Перетворити класи стовпців у таблицю data.table
У мене є проблема використання data.table: Як конвертувати класи стовпців? Ось простий приклад: З data.frame у мене немає проблеми з його перетворенням, а з data.table я просто не знаю як: 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"] …
118 r  data.table 

2
Яка мета встановити ключ у data.table?
Я використовую data.table і є багато функцій, які вимагають від мене встановити ключ (наприклад X[Y]). Тому я хочу зрозуміти, що робить ключ, щоб правильно встановити ключі в моїх таблицях даних. Одне я читав джерело ?setkey. setkey()сортує а data.tableта позначає як відсортовану. Впорядковані стовпці є ключовими. Ключем можуть бути будь-які стовпці …
113 r  data.table 

8
Очищення значень `Inf` від фрейму даних R
У R у мене є операція, яка створює деякі Infзначення, коли я перетворюю фрейм даних. Я хотів би перетворити ці Infзначення у NAзначення. Код у мене повільний для великих даних, чи є більш швидкий спосіб зробити це? Скажіть, у мене є такий кадр даних: dat <- data.frame(a=c(1, Inf), b=c(Inf, 3), …
101 r  dataframe  data.table 

5
Який найшвидший спосіб об’єднати / об’єднати data.frames у R?
Наприклад (не впевнений, що найбільш репрезентативний приклад): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) Це те, що я маю на даний момент: 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") d <- …

6
Отримання найвищих значень за групами
Ось зразок кадру даних: d <- data.frame( x = runif(90), grp = gl(3, 30) ) Я хочу, щоб підмножина dмістила рядки з першими 5 значеннями xдля кожного значення grp. Використовуючи base-R, мій підхід буде приблизно таким: ordered <- d[order(d$x, decreasing = TRUE), ] splits <- split(ordered, ordered$grp) heads <- lapply(splits, …
93 r  data.table  dplyr 

4
dplyr на data.table, чи справді я використовую data.table?
Якщо я використовую синтаксис dplyr поверх таблиці даних , чи отримую я всі переваги швидкості роботи таблиці даних, одночасно використовуючи синтаксис dplyr? Іншими словами, чи неправильно я використовую таблицю даних, якщо я запитую її із синтаксисом dplyr? Або мені потрібно використовувати чистий синтаксис даних, щоб використати всю його силу. Заздалегідь …
91 r  data.table  dplyr 

5
Виберіть / призначте data.table, коли імена змінних зберігаються у векторному символі
Як ви посилаєтесь на змінні в a, data.tableякщо імена змінних зберігаються у векторному символі? Наприклад, це працює для data.frame: df <- data.frame(col1 = 1:3) colname <- "col1" df[colname] <- 4:6 df # col1 # 1 4 # 2 5 # 3 6 Як я можу виконати цю саму операцію для …
91 r  data.table 


5
Розділити текстовий рядок у стовпцях таблиці даних
У мене є сценарій, який зчитує дані з файлу CSV у a, data.tableа потім розділяє текст в одному стовпці на кілька нових стовпців. Зараз я використовую для цього функції lapplyта strsplit. Ось приклад: 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 …
86 r  data.table 

7
Як застосувати ту саму функцію до кожного вказаного стовпця в data.table
У мене є таблиця даних. За допомогою якої я хотів би виконати ту саму операцію з певними стовпцями. Назви цих стовпців подані у векторному символі. У цьому конкретному прикладі я хотів би помножити всі ці стовпці на -1. Деякі дані про іграшки та вектор із зазначенням відповідних стовпців: library(data.table) dt …
85 r  data.table 

12
dplyr мутує / замінює кілька стовпців у підмножині рядків
Я в процесі випробування робочого процесу на основі dplyr (а не використовую в основному data.table, до якого я звик), і я зіткнувся з проблемою, через яку не можу знайти рівнозначного рішення dplyr . Я зазвичай стикаюся зі сценарієм, коли мені потрібно умовно оновити / замінити кілька стовпців на основі однієї …
85 r  data.table  dplyr 

10
Як замінити значення NA у таблиці для вибраних стовпців
Є багато публікацій про заміну значень NA. Мені відомо, що можна замінити НС у наступній таблиці / фреймі такими: x[is.na(x)]<-0 Але що, якщо я хочу обмежити його лише певними стовпцями? Давайте покажу вам приклад. Спочатку почнемо з набору даних. 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, …

8
Використовуйте значення з попереднього рядка в обчисленні таблиці даних R.
Я хочу створити новий стовпець у таблиці даних. Розрахований на основі поточного значення одного стовпця та попереднього іншого. Чи можна отримати доступ до попередніх рядків? Наприклад: > 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 4: …
81 r  data.table 

1
Перетворити кадр даних на data.table без копії
У мене є великий фрейм даних (порядку декількох ГБ), який я хотів би перетворити на data.table. Використання as.data.tableстворює копію кадру даних, а це означає, що мені потрібна доступна пам’ять принаймні вдвічі більша за розмір даних. Чи є спосіб зробити перетворення без копії? Ось простий приклад для демонстрації: library(data.table) N <- …

5
Фільтрування повторених / не унікальних рядків у data.table
Редагувати 2019: це питання було задано до змін у data.tableлистопаді 2016 року; див. Прийняту відповідь нижче як для поточного, так і для попередніх методів. У мене є data.tableтаблиця приблизно з 2,5 мільйонами рядків. Є дві колонки. Я хочу видалити всі рядки, які дублюються в обох стовпцях. Раніше для data.frame я …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.