Как разбить большой фрейм данных на более мелкие в R?

6 лучших практик кодирования для начинающих программистов Изучение

В этой статье мы узнаем, как разбивать и записывать очень большие фреймы данных на срезы на языке программирования 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
print(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 — это имя нового фрейма данных.

Читайте также:  Как создать условные типы в TypeScript?

R

df1 = split(df,df$Q)
 
# Printing splitted data frame
print(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
print(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 разделены, и именно так мы можем разделить большие кадры данных на более мелкие.

Оцените статью
bestprogrammer.ru
Добавить комментарий