Как использовать cbind в R (с примерами)


Функция cbind в R, сокращение от column-bind , может использоваться для объединения векторов, матриц и фреймов данных по столбцам.

В следующих примерах показано, как использовать эту функцию на практике.

Пример 1: связывание векторов в матрицу

В следующем коде показано, как использовать cbind для привязки столбцов двух векторов к одной матрице:

#create two vectors
a <- c(1, 3, 3, 4, 5)
b <- c(7, 7, 8, 3, 2)

#cbind the two vectors into a matrix
new_matrix <- cbind(a, b)

#view matrix
new_matrix

 a b
[1,] 1 7
[2,] 3 7
[3,] 3 8
[4,] 4 3
[5,] 5 2

#view class of new_matrix
class(new_matrix)

[1] "matrix" "array"

Пример 2. Привязка вектора к фрейму данных

В следующем коде показано, как использовать cbind для привязки столбца вектора к существующему фрейму данных:

#create data frame
df <- data.frame(a=c(1, 3, 3, 4, 5),
 b=c(7, 7, 8, 3, 2),
 c=c(3, 3, 6, 6, 8))

#define vector
d <- c(11, 14, 16, 17, 22)

#cbind vector to data frame
df_new <- cbind(df, d)

#view data frame
df_new

 a b c d
1 1 7 3 11
2 3 7 3 14
3 3 8 6 16
4 4 3 6 17
5 5 2 8 22

Обратите внимание, что R выдаст ошибку, если длина вектора не совпадает с длиной столбцов в существующем фрейме данных.

Пример 3. Привязка нескольких векторов к фрейму данных

В следующем коде показано, как использовать cbind для привязки столбцов нескольких векторов к существующему фрейму данных:

#create data frame
df <- data.frame(a=c(1, 3, 3, 4, 5),
 b=c(7, 7, 8, 3, 2),
 c=c(3, 3, 6, 6, 8))

#define vectors
d <- c(11, 14, 16, 17, 22)

e <- c(34, 35, 36, 36, 40) 

#cbind vectors to data frame
df_new <- cbind(df, d, e)

#view data frame
df_new

 a b c d e
1 1 7 3 11 34
2 3 7 3 14 35
3 3 8 6 16 36
4 4 3 6 17 36
5 5 2 8 22 40

Пример 4: Свяжите два фрейма данных

В следующем коде показано, как использовать cbind для привязки столбцов двух фреймов данных к одному фрейму данных:

#create two data frames
df1 <- data.frame(a=c(1, 3, 3, 4, 5),
 b=c(7, 7, 8, 3, 2),
 c=c(3, 3, 6, 6, 8))

df2 <- data.frame(d=c(11, 14, 16, 17, 22),
 e=c(34, 35, 36, 36, 40))

#cbind two data frames into one data frame
df_new <- cbind(df1, df2)

#view data frame
df_new

 a b c d e
1 1 7 3 11 34
2 3 7 3 14 35
3 3 8 6 16 36
4 4 3 6 17 36
5 5 2 8 22 40

Бонус: если вы хотите связать вместе векторы, матрицы или кадры данных по строкам, вместо этого вы можете использовать функцию rbind .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.