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