r - 根据条件返回数组中矩阵的索引
问题描述
大家好,我有一组 1 和 0 的矩阵。对于每一行(代表一个人),我想知道第一个出现的矩阵(维度 z)的索引。
我试图创建一个应用于数组的函数,返回一个向量,其中包含每个人的矩阵索引。
A= rbind(c(1,0),c(0,0))
B=rbind(c(0,1),c(1,0))
c<- array( c( A , B) , dim = c( 2 , 2 , 2 ) )
get.first <- function(x)min(which(x !=0 ))
f <- sapply( c,get.first)
我希望得到的向量 f 等于
f=c(1,2) 表示第一个个体记录在第一个矩阵中,第二个个体记录在第二个矩阵中。
消息错误返回 4 次
1:在 min(which(x != 0)) 中:min 没有非缺失参数;返回 Inf
解决方案
您需要使用apply
而不仅仅是sapply
,并告诉apply
要映射get.first
的边距。
apply(c,3,get.first)
评估为c(1,2)
。
切线地,c
用作数组的名称有点令人困惑,因为c
它也是核心 R 函数的名称。
推荐阅读
- python - 在交互模式下调用编辑器
- angular - Angular websocket 代理在升级到 websocket 协议时失败
- reactjs - 将 `{}` 的符号包裹在反应渲染周围
- javascript - Node.js 在另一个方法完成后调用一个方法
- r - 将数据框值分解为四分位数/十分位数范围
- java - 无法连接到 IBMMQ MQRC_NOT_UNAUTHORIZED
- python - 从C调用python hello world函数,解析字符串参数
- php - 我无法用 PHP 解析 XML
- r - 使用 col 中的值从另一个 col 中选择值,放入 R 中的新 df
- beautifulsoup - 带有 URL 循环的函数不会返回所有这些