Поиск по сайту:

Функция rbind() в R — простое связывание строк


Связывать или объединять строки очень просто с помощью функции rbind() в R.

rbind() означает привязку строк. Проще говоря, объединение нескольких строк в одну партию. Это может включать объединение двух фреймов данных, векторов и т. д.

В этой статье мы поговорим об использовании и применении функции rbind() в программировании на R.

Не теряя много времени, давайте перейдем к теме!!!

Синтаксис функции rbind()

rbind(): rbind или функция связывания строк используется для связывания или объединения нескольких групп строк вместе.

rbind(x,x1)

Где:

  • X=входные данные.
  • X1=данные необходимо связать.

Идея связывания строк с помощью rbind()

Идея связывания или объединения строк нескольких фреймов данных очень полезна при манипулировании данными.

Приведенная ниже диаграмма определенно натолкнет вас на идею работы с функцией rbind().

Вы можете видеть, как строки разных фреймов данных будут связаны/объединены функцией rbind().

Реализация функции rbind() в R

Как вы знаете, функция rbind() в R используется для связывания строк разных групп данных.

В этом разделе давайте попробуем создать простые фреймы данных и связать их с помощью функции rbind().

#creating a data frame 

Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)

df1

Приведенный выше код создаст простой фрейм данных, в котором будут представлены сведения о студентах и их имена.

   Student_class    Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George

Что ж, теперь у нас есть датафрейм из 5 строк. Давайте создадим еще один фрейм данных.

#creating a dataframe

Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)

df2
    Student_class      Student_details
1   High school           Bracy
2       College            Evin

Что ж, теперь у нас есть 2 фрейма данных с разным количеством строк (df1 и df2). Давайте воспользуемся функцией rbind(), чтобы связать два вышеуказанных фрейма данных в один фрейм данных.

Посмотрим, как это работает.

Вы не поверите, что для всего процесса привязки потребуется всего лишь строка кода.

#binds rows of 2 input data frames

rbind(df1,df2)
    Student_class     Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George
6   High school           Bracy
7       College            Evin

Результирующий фрейм данных будет объединенной версией обоих фреймов данных, как показано в приведенном выше выводе.

Связывание двух фреймов данных разной длины с помощью функции bind()

Итак, в предыдущем разделе мы объединили две группы строк вместе.

В этом разделе мы собираемся объединить два набора данных, используя функцию rbind в R.

#creates the data frame

Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)

df1
   Student_class    Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George
#creats the data frame

Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
   Student_class   Student_details   Student_rank
1   High school           Bracy            A
2       College            Evin           A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) : 
  numbers of columns of arguments do not match

О, подождите, что случилось? Почему функция выдает ошибку?

Если вы читаете строки в ошибке, в ней говорится, что количество столбцов не совпадает.

У нас есть 2 столбца в «df1» и 3 столбца в «df2».

Не беспокойтесь! у нас есть функция bind_rows(), которая поможет нам в этих сценариях.

Функция bind_rows() для связывания нечетных наборов данных

bind_rows() — это функция, которая является частью пакета dplyr. Нам нужно сначала импортировать пакет dplyr, чтобы выполнить эту функцию.

Мы используем те же кадры данных, что и в предыдущем разделе, то есть df1 и df2. Посмотрим, как это работает.

#install required packages
install.packages('dplyr')
#import libraries
library(dplyr)
#bind the rows
bind_rows(df1,df2)
   Student_class    Student_details   Student_rank
1   High school            Mark         <NA>
2       College            John         <NA>
3   High school        Fredrick         <NA>
4   High school           Floyd         <NA>
5       College          George         <NA>
6   High school           Bracy          A
7       College            Evin          A+

теперь вы можете видеть, что функция bind_rows объединила эти два неравных набора данных с точки зрения столбцов. Пустые места будут помечены как .

Связывание двух наборов данных с помощью функции rbind()

В этом разделе мы рассмотрим привязку двух полных наборов данных в R.

Посмотрим, как это работает.

Мы собираемся использовать набор данных BOD, так как в нем всего 6 строк, а также вы можете легко увидеть связанные строки.

#binds two data sets
rbind(BOD,BOD)
  Time demand
1     1    8.3
2     2   10.3
3     3   19.0
4     4   16.0
5     5   15.6
6     7   19.8
---------------
7     1    8.3
8     2   10.3
9     3   19.0
10    4   16.0
11    5   15.6
12    7   19.8

Набор данных БПК имеет 6 строк. Поскольку мы передаем данные дважды, функция rbind() свяжет те же строки, что и показано выше.

А также не забывайте, что у вас есть функция bind_rows().

#binds two different datasets

bind_rows(BOD,women)
    Time  demand  height  weight
1     1    8.3     NA     NA
2     2   10.3     NA     NA
3     3   19.0     NA     NA
4     4   16.0     NA     NA
5     5   15.6     NA     NA
6     7   19.8     NA     NA
7    NA     NA     58    115
8    NA     NA     59    117
9    NA     NA     60    120
10   NA     NA     61    123
11   NA     NA     62    126
12   NA     NA     63    129
13   NA     NA     64    132
14   NA     NA     65    135
15   NA     NA     66    139
16   NA     NA     67    142
17   NA     NA     68    146
18   NA     NA     69    150
19   NA     NA     70    154
20   NA     NA     71    159
21   NA     NA     72    164

Это примеры, которые ясно показывают работу и применение функций bind() и bind_rows.

Я надеюсь, что эти иллюстрации помогли вам понять эти функции.

Связывание нескольких групп строк в R

В этом разделе мы сосредоточимся на связывании нескольких (более 2) групп строк с помощью функции rbind(). Посмотрим, как это работает.

#binds rows of 3 data sets
bind_rows(BOD,women,ToothGrowth)
     Time demand height weight len supp  dose
1     1    8.3     NA     NA   NA  <NA>   NA
2     2   10.3     NA     NA   NA  <NA>   NA
3     3   19.0     NA     NA   NA  <NA>   NA
4     4   16.0     NA     NA   NA  <NA>   NA
5     5   15.6     NA     NA   NA  <NA>   NA
6     7   19.8     NA     NA   NA  <NA>   NA
7    NA     NA     58    115   NA  <NA>   NA
8    NA     NA     59    117   NA  <NA>   NA
9    NA     NA     60    120   NA  <NA>   NA
10   NA     NA     61    123   NA  <NA>   NA
11   NA     NA     62    126   NA  <NA>   NA
12   NA     NA     63    129   NA  <NA>   NA
13   NA     NA     64    132   NA  <NA>   NA
14   NA     NA     65    135   NA  <NA>   NA
15   NA     NA     66    139   NA  <NA>   NA
16   NA     NA     67    142   NA  <NA>   NA
17   NA     NA     68    146   NA  <NA>   NA
18   NA     NA     69    150   NA  <NA>   NA
19   NA     NA     70    154   NA  <NA>   NA
20   NA     NA     71    159   NA  <NA>   NA

Обратите внимание, как все три набора данных были связаны или объединены функцией bind_rows() в R. В этом красота функции bind_rows().

Эти две функции имеют бесконечное множество применений при манипулировании данными в программировании на R.

Подведение итогов

Функция rbind() в R и функция bind_rows() являются наиболее полезными функциями, когда дело доходит до манипулирования данными.

Вы можете легко связать два фрейма данных с одинаковым количеством столбцов, используя функцию rbind().

Таким же образом, если фреймы данных имеют неравное количество столбцов, вы можете использовать функцию bind_rows() вместе с пакетом dplyr.

Ну вот и все, счастливого вязания!!!

Подробнее: Документация R