【发布时间】:2019-04-05 17:25:51
【问题描述】:
我的环境中有多个矢量对象。所有这些向量的名称中都包含字符串“column”。例如,我有称为 column_1、column_2 等的矢量对象。
如何以编程方式将所有这些向量中的数据框作为数据框的列而不输入向量的名称?
我不想简单地说:
data.frame(column_1, column_2, ...)
有没有使用apply()或do.call()函数的方法?
我已经这样做了
vec_list <- grep("column", ls(), value=T)
但这不起作用
data.frame(vec_list)
我希望输出是一个数据帧,其中向量对象作为数据帧的列。
【问题讨论】:
-
使用
data.frame(mget(ls(pattern = "column_\\d+")))假设向量长度相等 -
是的,它们的长度相等。这奏效了。对
mget函数了解不多,但现在我知道了。谢谢。 -
这些向量是从哪里来的?在您的环境中拥有一堆具有不同后缀的单独对象通常不是一个好主意。通常,这些类型的对象应该被收集在一个列表中,以便于迭代或使用它们。看到
get()或mget()表明事情可能没有以类似 R 的方式完成。 -
你是完全正确的@MrFlick!但是,由于某种原因,我导入的环境是这样的。