[R] Help with arrays
Marc Schwartz
marc_schwartz at me.com
Thu May 29 18:27:47 CEST 2014
On May 29, 2014, at 11:22 AM, Marc Schwartz <marc_schwartz at me.com> wrote:
>
> On May 29, 2014, at 11:02 AM, Olivier Charansonney <olivier.charansonney at orange.fr> wrote:
>
>> Hello,
>>
>> I would like to extract the value in row 1 corresponding to the maximum in
>> row 2
>>
>>
>>
>> Array W
>>
>> [,1] [,2] [,3] [,4] [,5] [,6] [,7]
>> [,8] [,9] [,10]
>>
>> [1,] 651.00000 651.00000 651.00000 651.00000 651.00000 651.00000 651.00000
>> 119.00000 78.00000 78.00000
>>
>> [2,] 13.24184 13.24184 13.24184 13.24184 13.24184 13.24184 13.24184
>> 16.19418 15.47089 15.47089
>>
>>> valinit<-max(W[2,])
>>
>>> valinit
>>
>> [1] 16.19418
>>
>> How to obtain ‘119’
>>
>> Thanks,
>
>
> Hi,
>
> Using ?dput can help make it easier for others to recreate your object to test code:
>
>> dput(W)
> structure(c(651, 13.24184, 651, 13.24184, 651, 13.24184, 651,
> 13.24184, 651, 13.24184, 651, 13.24184, 651, 13.24184, 119, 16.19418,
> 78, 15.47089, 78, 15.47089), .Dim = c(2L, 10L))
>
>
> W <- structure(c(651, 13.24184, 651, 13.24184, 651, 13.24184, 651,
> 13.24184, 651, 13.24184, 651, 13.24184, 651, 13.24184, 119, 16.19418,
> 78, 15.47089, 78, 15.47089), .Dim = c(2L, 10L))
>
>
> See ?which.max, which returns the index of the *first* maximum in the vector passed to it:
>
>> W[1, which.max(W[2, ])]
> [1] 119
>
>
> You should consider what happens if there is more than one of the maximum value in the first row and if it might correspond to non-unique values in the second row.
Correction in the above sentence, it should be:
You should consider what happens if there is more than one of the maximum value in the second row and if it might correspond to non-unique values in the first row.
Marc
More information about the R-help
mailing list