Функция 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