【发布时间】:2020-09-09 03:03:20
【问题描述】:
我想获取一个向量来描述数组中单元格的位置,即“x=c(row, column)”,并返回该位置的标量索引。虽然这可以通过算术来完成,但我试图让我的代码相对容易阅读。 arrayInd 将您的标量索引转换为位置向量对我来说似乎很奇怪,但我无法将位置向量转换回标量索引。
示例代码:
x <- array(seq(0.1,2.7,1), dim=c(3,3,3))
locVec <- c(3,1,1)
mysteryFunc(locVec)
这将返回 3。
arrayInd(x[[mysteryFunc(locVec)]], .dim=dim(x))
返回locVec
【问题讨论】:
-
你能举个小例子吗?也许您需要使用
cbind即df1[cbind(row, column)] -
如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
-
如果您可以添加一些示例以使其更清晰,那将是很好的。尽管该副本涵盖了相同的领域,但充其量很难遵循。这是对数据的尝试:
mat <- matrix(1:10, ncol=2); sca <- (5:8); loc <- (arrayInd(sca, .dim=dim(mat)));和答案 -replace(mat, , seq_along(mat))[loc] -
是的,上面的代码仍然有效,只需要确保
locVec是一个矩阵 -replace(x, , seq_along(x))[ matrix(locVec, nrow=1) ]