【问题标题】:Set range data frame in R在R中设置范围数据框
【发布时间】:2020-06-03 12:41:47
【问题描述】:

我有大量 (17000) 个名称为 b1、b2...b17000 的 96x97 矩阵。我需要将它们组合成一个 96x97x17000 的数组。我正在尝试通过数组函数来做到这一点:

s=array(b1,b2...b17000,dim=c(96,97,17000))

问题在于,要使此函数起作用,您需要记下所有矩阵的名称。如果不写下 17,000 次矩阵的名称,如何做到这一点?

我尝试将其设置为范围 b1:b17000,但它无法正常工作。

【问题讨论】:

标签: r arrays matrix range


【解决方案1】:

根据您的原始问题,以下代码应该适合您。

names<-c(paste0("b",1:17000))
s<-array(unlist(mget(names)),dim=c(96,97,17000))

这将创建一个名为 names 的向量,其中包含您的矩阵名称(假设它们实际上称为 m1、m2、... m17000)。例如:names[1] 将是 b1names[2] 将是 b2,以此类推。

然后您可以使用names 来引用您的矩阵数组,如我建议的代码所示。

我希望这会有所帮助!

【讨论】:

  • 感谢您的反馈。您建议的代码使用矩阵名称创建一个向量,但是当您创建一个数组时,它会创建一个名称数组。而且我需要数组来自矩阵中包含的值。
  • 对不起!我省略了get() 函数。我已经更新了答案以反映这一点。
  • 也许将您的 get(names) 更改为 unlist(mget(names))
  • 非常感谢! unlist (mget (names)) 是我需要的。
猜你喜欢
  • 2018-08-06
  • 2022-11-18
  • 2021-03-09
  • 1970-01-01
  • 2020-10-03
  • 2020-08-26
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
相关资源
最近更新 更多