R 如何在循环中使用cbind创建矩阵

R 如何在循环中使用cbind创建矩阵,r,R,我试图在R中编写一个函数,返回k列的矩阵,其中k是一个函数参数 这些列在函数内部由一个循环构成,我使用(assign(paste),I)将它们命名为col.1,…,col.I。到目前为止还不错,代码可以正确地生成列向量 函数中已经定义了向量,第2列到第k列。X也被定义为等于第1列 然后,我尝试在函数中使用一个循环来cbind()列,如下所示: for (i in 2:k){ X <- cbind(X, col.i) } for(2:k中的i){ X试试看 这将返回从col1到colk的所

我试图在R中编写一个函数,返回k列的矩阵,其中k是一个函数参数

这些列在函数内部由一个循环构成,我使用(assign(paste),I)将它们命名为col.1,…,col.I。到目前为止还不错,代码可以正确地生成列向量

函数中已经定义了向量,第2列到第k列。X也被定义为等于第1列

然后,我尝试在函数中使用一个循环来cbind()列,如下所示:

for (i in 2:k){
X <- cbind(X, col.i)
}
for(2:k中的i){
X试试看


这将返回从
col1
colk
的所有向量,作为数据帧
df

中的列
X如何我不确定你想做什么,但这似乎不是正确的方法。就你的循环而言,最明显的错误是
cbind(X,col.I)
,它必须是
cbind(X,paste0('col.,i')
快速解决方案:
get(paste0('col.,i))
,但是,您解决此问题的方法应该重新考虑——将命名空间与
col.1
col.2
,…对象混在一起并不好。即使将它们保存在类似
list(col.1,col.2,col.3)的列表中
将允许您只提取
l[[i]]
(已经更干净了)另请参见:谢谢您的评论,但我还无法解决问题。我可以换一种方式说吗?给定一组在函数中定义和命名的k向量,其中k是函数参数,如何从这些向量创建矩阵?这非常有效,允许我将列绑定到函数中的矩阵中。谢谢U
df <- do.call(rbind, mget(paste0('col', 1:k)))
df <- dplyr::bind_rows(mget(paste0('col', 1:k)))

df <- data.table::rbindlist(mget(paste0('col', 1:k)))