r - 如何使用维度名称向量选择张量(多维数组)的一部分?

标签 r arrays tensor

在 R 的一个项目中,我遇到了这个问题,我真的很困惑:

比如我有张量T(维度3x2x2)和向量A

T <- array(c(1,2,3,4,5,6,7,8,9,10,11,12), dim=c(3,2,2), dimnames=list(c("X","Y","Z"),c("1","2"),c("a","b")))
A <- c(NA, "2","b")

我想知道如何获得 T[ ,"2","b"]使用矢量 A ?我试过 T[A]只要许多其他东西,但它似乎不起作用。注意 A是一个变量,它很可能变成 A <- c(NA, NA,"a")我们想要 T[ , ,"a"]在这种情况下。

非常感谢您的帮助!

最佳答案

试试这个(有点复杂):

A2<-as.list(A)
A2[is.na(A)]<-TRUE
do.call(`[`,c(list(T),A2))
# X  Y  Z 
#10 11 12

关于r - 如何使用维度名称向量选择张量(多维数组)的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67903871/

相关文章:

r - 如何保持 ggplot2 中绘图之间的点大小比例恒定?

javascript - 在 JavaScript 中查找对象数组中特定项目的所有链接项目

javascript - .click 在 Javascript 中没有任何效果 - 应该更新基于数组的两个元素

php - 通过键获取数组的某些元素

python - 使用 np.tensordot 的矩阵的 Khatri 乘积

r - 对列表中匹配特定条件的多个数据帧进行子集化

r - 创建 data.frame 时添加到列名称中的 X 和点

r - 如何在 R Shiny 中仅使用一个下载按钮来下载多个绘图?

python - 对于给定条件,获取 2D 张量 A 中的值的索引,使用这些索引来索引 3D 张量 B

python - "InvalidArgumentError: Incompatible shapes: [64,40000] vs. [64] [Op:Mul]"在张量之间进行运算时?