r 中带有数组的子集矩阵

2023-12-25

这可能是相当基本的,但我还没有找到一个简单的解决方案。

假设我有一个三维矩阵:

m <- array(seq_len(18),dim=c(3,3,2))

我想用索引数组对矩阵进行子集化:

idxrows <- c(1,2,3)
idxcols <- c(1,1,2)

获取位置上的数组(1,1),(2,1) and (3,2), 那是:

       [,1] [,2] [,3]
[1,]    1    5    9
[2,]   10   14   18

我努力了m[idxrows,idxcols,]但没有任何运气。

有没有办法做到这一点(显然不使用 for 循环)?


不确定是否有任何简单的内置extract语法,但您可以使用以下方法解决此问题mapply:

mapply(function(i, j) m[i,j,], idxrows, idxcols)

#     [,1] [,2] [,3]
#[1,]    1    2    6
#[2,]   10   11   15

或者稍微复杂一点,创建一个索引矩阵,其列与原始数组的维度匹配:

thirdDim <- dim(m)[3]
index <- cbind(rep(idxrows, each = thirdDim), rep(idxcols, each = thirdDim), 1:thirdDim)
matrix(m[index], nrow = thirdDim)

#     [,1] [,2] [,3]
#[1,]    1    2    6
#[2,]   10   11   15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

r 中带有数组的子集矩阵 的相关文章

  • r 选择数据框中某个值以下和之后的值

    我有一个问题如何从表中选择某些值 我有一个包含时间和值的表 我想在特定时间之后获取下面的行 示例 Data Frame Time Value 02 51 0 08033405 05 30 0 43456738 09 45 0 3605207
  • 更改 ggplot 对象的数据集

    我正在绘制数据的子集ggplot2我想知道我是否会以某种方式使用已包含在ggplot原始数据子集中的对象 举个例子 这是第一个图 代码块 1 require ggplot2 p lt ggplot mtcars aes mpg wt col
  • 测试 PCA 图上簇的显着性

    是否可以在 PCA 图上测试 2 个已知组之间聚类的显着性 测试它们的接近程度或分布量 方差 以及簇之间的重叠量等 这是一种定性方法 使用ggplot 在簇周围绘制 95 置信椭圆 注意stat ellipse 使用二元 t 分布 libr
  • 按列名合并 3 个 data.frames

    我有3个独立的data frames 他们三个data frames具有相同的列数和相同的行数 此外 它们具有相同的列名称 我正在尝试根据列名称合并三个 data frames 我使用下面的代码来合并两个 data frames 并返回匹配
  • 如何根据R中的条件创建新变量

    我正在尝试根据某些条件创建一个新变量 我的数据看起来像 a b 1 NA 2 3 3 3 NA 2 NA NA 我想要的是一个变量c这样 when a is not NA b is NA c a when a is NA b is not
  • 在 expr *之前*执行的任务处理程序

    是否有运行代码的回调before提示输入expr被评价 通过 SO CRAN 和一些谷歌搜索发现了我怀疑的答案 当前的 REPL 实现不可能 如果我错过了类似详细的重复讨论 我深表歉意 我对addTaskCallback 及其函数族 正在阅
  • 如何在 ggplot2 图中有两个源标题? [复制]

    这个问题在这里已经有答案了 我正在尝试在 ggplot2 图中添加第二个标题 与这位经济学家制作此图的方式类似 这是我制作的一个基本图 我知道如何在右下角添加一个标题 但如何在左下角添加另一个标题 ggplot mtcars aes mpg
  • R - 按列比较两行并将结果写入表中

    我是 R 新手 可能我的问题的解决方案非常简单 但目前我无法实现 我想按列比较数据框中的行 每列中的数据是一个字母 核苷酸碱基 seq1 A C T G T seq2 A C G G G seq3 A G G C A 我想按列比较数据集中的
  • 连接极线ggplot图中的间隙

    当 ggplot 使用极坐标绘制线图时 它会在最高和最低 x 值之间留下间隙 Dec and Jan如下 而不是缠绕成螺旋状 我怎样才能继续这条线并缩小差距 特别是 我想使用月份作为 x 轴 但在一条循环线上绘制多年的数据 Reprex l
  • 如何查找页面上R图形的字节大小?

    我想监控 R 在各个页面上生成的图形的基本质量 例如每个页面的字节大小 我现在只能对平均页面进行质量保证 请参阅下面的章节 我认为这项任务必须有一些比一般措施更内置的东西 生成 4 页的代码Rplots pdf我想知道此处输出中每个页面的字
  • R数据表:如何找到特定单元格正下方的未知数量的空单元格并用编号字符串填充它们

    我知道如何找到空的cells in a data table一般来说 但这有点棘手 我还没有完全弄清楚如何管理它 可以说我有一个data table其中在df 2 1 包含我需要定位的关键字字符串 智能触发 在这种情况下 仪器用户使用的智能
  • 使用 mutate_if 和 Replace_na 替换数字列上的 NA

    我想使用某些变体替换数字列中的 NAmutate if and replace na如果可能的话 但无法弄清楚语法 df lt tibble first c a NA b second c NA 2 NA third c 10 NA NA
  • 如何计算R中的月份差异

    我有格式的日期2015 03 即年月 现在我想计算两个日期之间的月份差异 示例 日期之间的差异2015 03 and 2014 12应该是 3 或 4 因为 12 月到 3 月是 3 个月或 4 个月 这取决于我们是否考虑 12 月 你可以
  • 如何在 Jupyter Notebook 内的 conda 环境中使用特定的 Java 版本

    我的总体目标是使用sparklyr在 Jupyter 实验室的 Azure 云服务上的 R Jupyter 笔记本中 我使用 R sparklyr 和 Java 8 创建了一个新的 conda 环境 因为这是 Sparklyr 支持的版本
  • 无法使用 rtools40 和 R 4.0 构建 RDCOMClient

    不久前 我创建了 RDCOMClient 包的一个分支 以使其与 R 3 6 一起工作 https github com dkyleward RDCOMClient https github com dkyleward RDCOMClien
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • rpy2 传递 python 保留关键字参数

    我试图通过 python 使用 r 的密度函数 并且必须将 from to 参数传递给密度函数 然而 由于 from 这个词是Python中的保留关键字 我该如何实现这一点呢 谢谢 这是到目前为止的代码 r density robjects
  • R 中的威布尔分布 (ExtDist)

    有人使用威布尔分布遇到过问题吗 扩展包 https www rdocumentation org packages ExtDist versions 0 6 3 来自文档 https www rdocumentation org packa
  • 为什么for循环只显示最后一个循环的结果

    我有这个样本矩阵 X1 X2 X3 X4 1 F F F F 2 C C C C 3 D D D D 4 A A A A 我正在尝试使用 for 循环来获取每列中唯一音高的数量 我正在尝试这样做 y lt read csv file fra
  • 绘制 grobs 列表

    披露 我不确定如何为这个问题制作一个可重现的例子 我正在尝试使用以下方法绘制 grobs 列表gridExtra包裹 我有一些代码看起来像这样 Make Graphic Objects for Spec and raw traces for

随机推荐