如何在 R 中绑定多个列

How to cbind multiple columns in R

mydata <- data.frame(a = 2, b = 3, c = 3)
myvec <- c(2, 9, 1)

我想将 mydatamyvec 列绑定。我希望最终输出看起来像这样:

> mydata
  a b c myvec1 myvec2 myvec3
1 2 3 3      2      9      1

但是,如果我简单地使用 cbind,我得不到想要的结果:

> cbind(mydata, myvec)
  a b c myvec
1 2 3 3     2
2 2 3 3     9
3 2 3 3     1

一种方法是使用 for 循环遍历 myvec 中的条目。有没有更简单的方法?

我们可以转换为list

cbind(mydata, setNames(as.list(myvec), paste0('myvec', seq_along(myvec))))
#    a b c myvec1 myvec2 myvec3
#1 2 3 3      2      9      1

或者另一种选择是

mydata[paste0('myvec', seq_along(myvec))] <- myvec

您可以转置向量:

cbind(mydata, t(myvec))
#  a b c 1 2 3
#1 2 3 3 2 9 1

您可以使用 setNamesnames<-

命名列