【问题标题】:Plotting elements from list of matrices in R从R中的矩阵列表中绘制元素
【发布时间】:2021-06-17 21:46:07
【问题描述】:

我有 list20,000 条目。每个条目都是一个25x3 矩阵。

我需要在 x=1,...,20000y = list[x][1,3] 生成一个绘图(这个 sintaxis 不起作用)。

我不想遍历整个列表并将值保存在新向量中,因为我不想在不必要的情况下浪费内存。

总之,我需要获取列表中每个矩阵的相同条目,并绘制这些值。

BETAJ 是矩阵列表。我尝试了以下

我期望得到的是从位置 1 到 10,000 的矩阵中位置 [1,3] 的值。

【问题讨论】:

  • 是否需要 rbind 即do.call(rbind, lst1)
  • 它是如何工作的?什么是 rbind?
  • 我不知道,因为没有可重复的示例和预期,这只是一个猜测。 rbind 是一个函数
  • 抱歉,我没有举个例子,因为我遇到了错误。请检查我的编辑
  • 您不能使用 [[ 对超过 1 个元素进行子集化。你需要BETAJ[1:10000]

标签: r list plot


【解决方案1】:

首先,请注意如何对列表进行子集化。 list[1] 返回一个列表,该列表仅包含较大列表中的第一个矩阵。您想使用list[[x]][1,3] 来返回矩阵本身。

但是,将 this 作为 y 值传递给 plot() 函数将不起作用,因为未定义 x。为了解决这个问题,我建议使用sapply() 来遍历您的矩阵列表并检索您想要绘制的值。它看起来像这样:

plot(1:20000, sapply(1:20000, function(x) list[[x]][1,3]))

我不太确定使用这样的内联应用函数的内存占用量是多少,但至少它应该小于更大列表本身的占用量,因为它是一个非常非常它的一小部分。

【讨论】:

  • 谢谢,这就是我要找的!
猜你喜欢
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2023-01-31
相关资源
最近更新 更多