В этой статье мы узнаем, как разбивать и записывать очень большие фреймы данных на срезы на языке программирования R.
Введение
Мы знаем, что нам приходится иметь дело с большими фреймами данных, а это непросто. Поэтому, чтобы иметь дело с такими большими фреймами данных, очень полезно разделить большие фреймы данных на множество более мелких. Мы часто используем разделенные функции для выполнения задачи. Чтобы разделить очень большие фреймы данных, существуют различные шаги, давайте рассмотрим их.
Поэтапная реализация
Шаг 1: Давайте возьмем фрейм данных, к которому мы собираемся применить операцию разделения, чтобы разбить его на небольшие фрагменты.
P Q R SP1 2012-01 123 SP2 2022-01 143 SP3 2022-01 342 SP1 2022-02 542 SP2 2022-02 876 SP3 2022-02 982 SP1 2022-03 884 SP2 2022-03 936 SP3 2022-03 987
Шаг 2: Теперь на этом шаге нам нужно что-то, что возвращает данные в виде таблицы, и для этого мы будем использовать функцию read.table(). Функция read.table() используется для чтения данных из текстового файла, а затем возвращает данные в виде таблицы. Эта функция поддерживает различные аргументы, такие как текстовые файлы, заголовки и т. д.
Syntax: read.table(filename, header = FALSE, sep = “”)
Параметры:
заголовок: представляет, содержит ли файл строку заголовка или нет.
sep: представляет значение разделителя, используемое в файле.
R
# Reading data in the form
# of table
df <-
read.table
(text=
"P Q R
SP1 2012-01 123
SP2 2022-01 143
SP3 2022-01 342
SP1 2022-02 542
SP2 2022-02 876
SP3 2022-02 982
SP1 2022-03 884
SP2 2022-03 936
SP3 2022-03 987",
header =
TRUE
)
# Printing original data frame
(df)
Выход:
P Q R 1 SP1 2012-01 123 2 SP2 2022-01 143 3 SP3 2022-01 342 4 SP1 2022-02 542 5 SP2 2022-02 876 6 SP3 2022-02 982 7 SP1 2022-03 884 8 SP2 2022-03 936 9 SP3 2022-03 987
Шаг 3: На этом шаге мы разделим кадры данных на более мелкие, и для этого мы должны использовать функцию split(). Это встроенная функция R, которая делит вектор или кадр данных на более мелкие группы в соответствии с параметрами функции.
Syntax: split(x, f, drop = FALSE)
Параметры:
x: представляет вектор данных или фрейм данных
f: представляет коэффициент для деления
отбрасываемых данных: представляет логическое значение, указывающее, следует ли отбрасывать уровни, которые не встречаются
Нам нужно создать несколько новых фреймов данных, используя содержимое любого столбца, то есть Q и P. Мы будем использовать содержимое столбца Q, а после этого также назовем фреймы данных; ниже приведен код и снимок экрана, относящиеся к тому, как создать новый фрейм данных с помощью функции разделения, назвать его и распечатать новый фрейм данных. Ниже используется df1 — это имя нового фрейма данных.
R
df1 =
split
(df,df$Q)
# Printing splitted data frame
(df1)
Выход:
$`2012-01` P Q R 1 SP1 2012-01 123 $`2022-01` P Q R 2 SP2 2022-01 143 3 SP3 2022-01 342 $`2022-02` P Q R 4 SP1 2022-02 542 5 SP2 2022-02 876 6 SP3 2022-02 982 $`2022-03` P Q R 7 SP1 2022-03 884 8 SP2 2022-03 936 9 SP3 2022-03 987
Шаг 4: На этом шаге мы создадим новый фрейм данных, используя содержимое столбца P и назовем его df2. Приведенный ниже код и снимок экрана относятся к тому, как создать новый фрейм данных с помощью функции split(), назвать его и распечатать новый фрейм данных. Ниже используется df2 — это имя нового фрейма данных.
R
df2 =
split
(df,df$P)
# Printing splitted data frame
(df2)
$SP1 P Q R 1 SP1 2012-01 123 4 SP1 2022-02 542 7 SP1 2022-03 884 $SP2 P Q R 2 SP2 2022-01 143 5 SP2 2022-02 876 8 SP2 2022-03 936 $SP3 P Q R 3 SP3 2022-01 342 6 SP3 2022-02 982 9 SP3 2022-03 987
Из вывода видно, что SP1, SP2 и SP3 разделены, и именно так мы можем разделить большие кадры данных на более мелкие.