R:当有平局时,在每行中查找具有最小值的列

标签 r matrix

这是我的数据示例:

>dat <- matrix(c(59,50,48,44,44,NA,78,59,42,67,51,NA,72,64,64),byrow=TRUE,ncol=3) 
>k <- apply(dat, 1, function(x) which(x == min(x, na.rm = TRUE)))
>k
[[1]]
[1] 3

[[2]]
[1] 1 2

[[3]]
[1] 3

[[4]]
[1] 2

[[5]]
[1] 2 3

但是,我想要这样的输出:

k
3 2 3 2 3



提前谢谢了。

最佳答案

你想要每行的最大索引吗?
然后,

> k <- apply(dat, 1, function(x) max(which(x == min(x, na.rm = TRUE))))
> k
[1] 3 2 3 2 3

会这样做。

关于R:当有平局时,在每行中查找具有最小值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495289/

相关文章:

python - 属性错误 : 'numpy.int32' object has no attribute 'append'

r - 在 R 中自定义时间序列数据图 X 轴的日期格式?

r - 绘制 r 两个分类变量

matlab - 如何有条件地获取矩阵行?

python - Numpy 矩阵减法混淆

opencv - 设置cv::Mat类型而不设置矩阵大小

c - 如何将 PPM (P3) 图像中的像素数据读取到 C 中的矩阵中?

R中的regrid netcdf数据用于插值

r - 如何在数字序列的循环内的赋值运算符的两侧使用paste0?

python - 相当于 R dcast 的 Pandas