Связывание или объединение строк очень легко выполняется с помощью функции rbind() в R.
rbind() означает связывание строк. Проще говоря, это объединение нескольких строк для формирования одного пакета. Это может включать в себя объединение двух фреймов данных, векторов и многого другого.
В этой статье будет рассказано о применении функции rbind() в программировании на R.
Не теряя времени, давайте перейдем к теме!!!
Синтаксис функции rbind()
rbind(): Функция rbind или связывания строк используется для объединения нескольких групп строк вместе.
rbind(x,x1)
Где:
- X = the input data.
- X1 = Данные, которые нужно связать.
Идея связывания строк с использованием rbind()
Идея связывания или объединения строк нескольких фреймов данных крайне полезна при манипулировании данными.
На следующей схеме вы точно поймете, как работает функция rbind().
Вы можете видеть, как строки разных фреймов данных связаны/объединены функцией rbind().
Реализация функции rbind() в R
Как вы знаете, функция rbind() в R используется для объединения строк различных групп данных.
В этом разделе давайте попробуем создать простые фреймы данных и объединить их с использованием функции rbind().
#создание фрейма данных
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 строк. Давайте создадим еще один фрейм данных.
#создание фрейма данных
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() для объединения этих двух фреймов данных в один.
Посмотрим, как это работает.
Вы не поверите, что весь процесс объединения потребует всего лишь одной строки кода.
#объединение строк двух входных фреймов данных
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.
# создает кадр данных
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
# создает кадр данных
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.packages('dplyr')
# импортируем библиотеки
library(dplyr)
# объединим строки
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 объединила эти два неравных набора данных по колонкам. Пустые места будут помечены как <NA>.
Объединение двух наборов данных с использованием функции rbind()
В этом разделе мы рассмотрим объединение двух целых наборов данных в R.
Давайте посмотрим, как это работает.
Мы будем использовать набор данных BOD, так как в нем всего 6 строк, и вы легко можете наблюдать связанные строки.
# объединяет два набора данных
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
Набор данных BOD содержит 6 строк. Поскольку мы передаем данные дважды, функция rbind() привяжет те же строки, как показано выше.
И не забывайте о том, что у вас также есть функция bind_rows().
# объединяет два разных набора данных
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().
I hope these illustrations helped you in understanding these functions.
Связывание нескольких групп строк в R
В этом разделе мы сосредоточимся на связывании нескольких (более 2) групп строк с использованием функции rbind(). Давайте посмотрим, как это работает.
#связывает строки 3 наборов данных
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().
Эти 2 функции имеют бесчисленные применения в манипулировании данными в программировании на R.
Подводя итог
Функция rbind() в R и функция bind_rows() являются наиболее полезными функциями, когда речь идет о манипулировании данными.
Вы можете легко объединить два фрейма данных с одинаковым количеством столбцов, используя функцию rbind().
Точно так же, если фреймы данных имеют неравное количество столбцов, вы можете использовать функцию bind_rows() вместе с пакетом dplyr.
Ну вот и все на этом, Счастливого связывания!!!
Больше информации: Документация по R
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r