如何 select 带有维度名称向量的张量(多维数组)的一部分?
How to select part of a tensor (multidimensional array) with a vector of dimension names?
在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")
我想知道如何使用矢量 A
获得 T[ ,"2","b"]
?我尝试了 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的一个项目中遇到了这个问题,我真的很困惑:
比如我有张量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")
我想知道如何使用矢量 A
获得 T[ ,"2","b"]
?我尝试了 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