在R语言中如何获取数组内等于指定值元素的多维索引?
R语言多维数组特定值的多维索引获取方法
你只需要给which()函数添加arr.ind = TRUE参数即可直接得到多维索引格式的结果,具体代码如下:
# 获取所有值为100的元素的多维索引,返回矩阵格式,每行对应一组索引 idx_matrix <- which(RFO_2003 == 100, arr.ind = TRUE)
返回的idx_matrix是n行4列的矩阵,n等于符合条件的元素总数,每一行的4个值分别对应数组四个维度的下标,就是你需要的[8, 20, 3, 6]类格式。
如果需要直接输出你举例的字符串格式的索引列表,可追加以下代码:
output_idx <- apply(idx_matrix, 1, function(row) { paste0("[", paste(row, collapse = ", "), "]") }) # 打印输出结果 cat(paste(output_idx, collapse = ", "))
补充说明:
- 该方法返回的索引顺序和你之前用
which(RFO_2003 == 100)得到的线性索引完全一一对应,不存在匹配偏差问题 - 抽检验证时可直接用索引取值校验,示例:取第一个符合条件的元素验证值是否为100:
RFO_2003[idx_matrix[1,1], idx_matrix[1,2], idx_matrix[1,3], idx_matrix[1,4]]
内容的提问来源于stack exchange,提问作者The_Tams
相关产品推荐
相关产品推荐

