如何在 R 中绑定多个列
How to cbind multiple columns in R
mydata <- data.frame(a = 2, b = 3, c = 3)
myvec <- c(2, 9, 1)
我想将 mydata
与 myvec
列绑定。我希望最终输出看起来像这样:
> 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
您可以使用 setNames
或 names<-
命名列
mydata <- data.frame(a = 2, b = 3, c = 3)
myvec <- c(2, 9, 1)
我想将 mydata
与 myvec
列绑定。我希望最终输出看起来像这样:
> 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
您可以使用 setNames
或 names<-