R-评估矩阵中的所有值,并在满足条件时提取整行

R-评估矩阵中的所有值,并在满足条件时提取整行,r,statistics,R,Statistics,我试图编写一个函数,它根据一个条件对矩阵中的每个项求值。如果满足任何项的条件,则将整行添加到第二个矩阵中 (上下文:我这样做是为了比较所有属性的离群值。如果任何一行有任何属性的离群值数据(其z分数>3),则整行将添加到离群值数据矩阵) 请看下面我的代码。我真的不明白为什么它不起作用 outliers <- matrix() x <- 1 for(r in nrow(all_z_stats)){ for(c in ncol(all_z_stats)){ if(all_z_s

我试图编写一个函数,它根据一个条件对矩阵中的每个项求值。如果满足任何项的条件,则将整行添加到第二个矩阵中

(上下文:我这样做是为了比较所有属性的离群值。如果任何一行有任何属性的离群值数据(其z分数>3),则整行将添加到离群值数据矩阵)

请看下面我的代码。我真的不明白为什么它不起作用

outliers <- matrix()
x <- 1
for(r in nrow(all_z_stats)){
  for(c in ncol(all_z_stats)){
    if(all_z_stats[r,c]>3){
      outliers[x,] <- all_z_stats[r,]
      x <- x + 1
    }}
}

异常值测试数据:
所有统计数据好吧,您可以将异常值定义为
数值()
,并使用
rbind()
像这样堆积矩阵:

outliers <- numeric()

for(r in nrow(all_z_stats)){
  for(c in ncol(all_z_stats)){
    if(all_z_stats[r,c]>3){
      outliers <- rbind(outliers,all_z_stats[r,])
      break
    }
  }
}
异常值3){
异常值
outliers <- matrix(ncol=ncol(all_z_stats))
all_z_stats[sapply(seq_len(nrow(all_z_stats)), function(r) any(all_z_stats[r, ] > 3)), ]
outliers <- numeric()

for(r in nrow(all_z_stats)){
  for(c in ncol(all_z_stats)){
    if(all_z_stats[r,c]>3){
      outliers <- rbind(outliers,all_z_stats[r,])
      break
    }
  }
}