Finding the column number of the smallest element in a certain row

冷暖自知 提交于 2019-11-28 11:11:01

问题


Using R

Say for example you have a matrix such as the one below.

    > C<-matrix(c(0,-7,2,8,0,0,3,7,0,3,0,3,0,0,0,0),nrow=4,byrow=TRUE)
> C
     [,1] [,2] [,3] [,4]
[1,]    0   -7    2    8
[2,]    0    0    3    7
[3,]    0    3    0    3
[4,]    0    0    0    0

How do you find the column number of the smallest element in a certain row. For example I want to know what column number the smallest element in row 1 is. Therefore the output should just be 2. As the smallest element in row 1 is -7 and that is in column 2. I'm assuming the answer is very easy but i just can't seem to do it! I tried doing the following but it just gives me the answer of 5.

> inds = which(C == min(C[1,]))
> inds
[1] 5

Can someone also tell me what the 5 means in this particular case?

Thanks


回答1:


If there is only a single minimum for each row you can find it with

apply(C, 1, which.min)

or (from R: finding column with minimum value in each row when there is a tied). See ?max.col for more options.

max.col(-C, "first")

edit (thanks to @flodel in the comments)

You can do this for individual rows by

which.min(C[1,])

Or if there are multiple matches

apply(C, 1, function(i) which(i == min(i)))

You get 5, as -7 is the fifth element of the matrix as it goes column wise. Look at c(C)



来源:https://stackoverflow.com/questions/27404710/finding-the-column-number-of-the-smallest-element-in-a-certain-row

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!