不带'rbind'函数的粘贴向量

不带'rbind'函数的粘贴向量,r,R,我的R环境中有10个向量。我想粘贴这个向量来创建一个数据帧。我使用了rbind函数,但我认为这是非常低效的,因为我必须在函数中键入所有变量。问题是,我可以使用paste0或paste函数或其他类似函数来粘贴此向量吗?谢谢 #Por ejemplo x1 <- c(1, 2) x2 <- c(3, 4) x3 <- c(5, 6) x4 <- c(7, 8) x5 <- c(9, 10) x6 <- c(11, 12) x7 <- c(13, 14) x

我的R环境中有10个向量。我想粘贴这个向量来创建一个数据帧。我使用了
rbind
函数,但我认为这是非常低效的,因为我必须在函数中键入所有变量。问题是,我可以使用
paste0
paste
函数或其他类似函数来粘贴此向量吗?谢谢

#Por ejemplo

x1 <- c(1, 2)
x2 <- c(3, 4)
x3 <- c(5, 6)
x4 <- c(7, 8)
x5 <- c(9, 10)
x6 <- c(11, 12)
x7 <- c(13, 14)
x8 <- c(15, 16)
x9 <- c(17, 18)
x10 <- c(19, 30)

rbind(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)
#Por ejempo

x1do.call
函数在参数为列表且函数所需的项仅为向量时非常有用。由于返回列表的
mget
是尝试从字符名转换为对象名时的自然工具,因此您可以尝试:

do.call(rbind, mget(paste0("x", 1:10)))
#---
    [,1] [,2]
x1     1    2
x2     3    4
x3     5    6
x4     7    8
x5     9   10
x6    11   12
x7    13   14
x8    15   16
x9    17   18
x10   19   30
或者使用
矩阵

matrix(unlist(mget(paste0("x", 1:10))), ncol=2, byrow = TRUE)
ls()
返回环境中所有变量名的向量。如果对每个以x开头的变量名执行正则表达式,则可以迭代新的向量并
get()
它们以调用具有该名称的变量。如果在
lappy
函数中调用
get
,则会得到所有被调用变量的列表
do.call()
对列表中的每个项目执行一个函数

to_get <- ls()[grepl('^x', ls())]
to_bind <- lapply(to_get, get)
final_matrix <- do.call(rbind, to_bind)

要获取,为什么不使用
rbind
?什么是为角色对象保留的粘贴?请显示所需的输出。问题是您创建了一组顺序命名的变量。不要那样做。从一开始就将它们放在数据结构中,如数据框或列表中。@Parfait Imo,这很好。OP应该知道如何查找帮助文件,但我想指向
?do.call
等不会有什么坏处。如果有什么事情(我)不满意的话,我想是因为缺乏告诫/批评,不能像OP那样在全球环境中制造一堆向量(例如,加上一句“当然,这很愚蠢”)。无论如何,我想更多的评论可以转到“谢谢”,这对我帮助很大。或者你可以使用
eapply
eapply(.GlobalEnv,identity)[grepl(“^x”,ls())]
谢谢,非常有用我不知道怎么做