【发布时间】:2018-08-13 18:44:38
【问题描述】:
我有以下变量 x11 x12 x13 x21 x22 x23....x51,x52,x53
我想要一个包含以上所有值的向量
x
除了单独输入所有名称之外,有没有一种简单的方法可以将它们组合成一个向量?
这只是一个例子,变量名是有索引的但比较复杂,这样的变量也不止5组。
我认为所有的答案都可以缓解这个问题。也许我应该更清楚。
本质上,变量名Xij有2个索引,
举个例子,i的取值范围是1-3,j的取值范围是1到5。所以变量是:
X11 X12 X13;
X21 X22 X23;
....;
X51 X52 X53;
所有答案都可以轻松应用于 i=1...5 的每组 Xijs 以创建 5 个向量:
Y1 包括 X11-X13 的值 .. Y5 包括 X51-X53。
那么Ys可以组合成Z。
【问题讨论】:
-
x <- paste0('x', 11:53)?当您说“组合它们”时,您的意思是组合向量中的名称或值吗?如果是后一种情况,您可能需要一个列表而不是向量。 -
答案可能取决于细节。您应该尝试制作一个可重现的示例(例如,较小的只有 x11-x13)。我的猜测:
unlist(mget(paste0('x', 11:53))) -
unlist(mget(ls(pattern ="^x\d{2}$"))) -
t(sapply(paste0("x",1:5),paste0,1:3))???这些是变量吗?然后做mget(t(sapply(paste0("x",1:5),paste0,1:3)))