首页 > 解决方案 > 根据条件返回数组中具有 NA 的矩阵的索引

问题描述

我有一组 1、0 和 NA 的矩阵。对于每一行(代表一个人),我想知道第一个出现的矩阵(维度 z)的索引。

我试图创建一个应用于数组的函数,返回一个向量,其中包含每个人的矩阵索引。

A= rbind(c(NA,1),c(0,0))
B=rbind(c(0,1),c(1,0))
d<- array( c( A , B) , dim = c( 2 , 2 , 2 ) )

    get.first <- function  (x) min(which(x!= 0 & !is.na(x)), na.rm = TRUE)
    f <- apply( d,3,get.first)

我希望得到的向量 f 等于

f=c(1,2)

表示第一个个体记录在第一个矩阵中,第二个个体记录在第二个矩阵中。

相反,我得到一个向量 f = c(3,2) ,但数组只有两个矩阵,这很奇怪

标签: r

解决方案


推荐阅读