[R] Mapping data onto score

rcoder michael.larsson at gmail.com
Wed Jul 16 21:01:02 CEST 2008


Here's my code:

nc<-ncol(mat)       #setting end point in counter to number of cols in sm
nr<-nrow(mat)
    mm <- array(NA, dim=c(2, nc))       #to hold min/max ranges
    sc <- array(NA, dim=c(nr, nc))      #to hold percentile scales
    for (n in 1:nc) {                   #now calculate respective ranges for
data matrix
    mm[,n]<-range(mat[,n],na.rm=T)       #inserts min/max values into sc
matrix
          for (m in 1:nr) {
          sc[m,n]<-100*(mat[m,n]-mm[1,n])/(mm[2,n]-mm[1,n]) #re-scaling onto
percentile ranking
                              }
                        }
rcoder



rcoder wrote:
> 
> I am trying to apply the solution you mentioned to all columns in a
> matrix, and output the results to another matrix and append the two using
> the cbind function.
> 
> I have written something that works, using a nested For loop to go through
> all the cells in the target matrix, but the trouble is that the process
> takes a while to run (3-4 mins). The matrix is large, about 2000 by 10000,
> so this could be a reason for the slow speed. However, I'm convinced there
> is a faster way of applying this mapping procedure to all columns in a
> matrix and outoutting into columns in a separate matrix.
> 
> I would be grateful for any suggestions on this slight modification.
> Otherwise, I can make do with my version.
> 
> Thanks,
> 
> rcoder
> 
> 
> rcoder wrote:
>> 
>> Thank you Ben! This is very clear.
>> rcoder
>> 
>> 
>> Ben Tupper wrote:
>>> 
>>> 
>>> On Jul 15, 2008, at 5:16 PM, rcoder wrote:
>>> 
>>>>
>>>> Hi Ben,
>>>> Yes, this is more or less what I want to do. I want to apply this  
>>>> data in
>>>> columns in a matrix, and insert the results to additional columns.  
>>>> I am not
>>>> entirely aware of a good way of doing this.
>>>>
>>>> e.g. take data from column B, apply normalisation, and feed output  
>>>> into
>>>> column C
>>>>
>>> 
>>> Oh,
>>> 
>>> I think you want to use cbind() to add columns to a matrix.  Perhaps  
>>> like this which works with the second column...
>>> 
>>> v <- matrix(data = rnorm(100), nrow = 10, ncol = 10)
>>> mm <- range(v[,2])
>>> s <- 10 * (v[,2]-mm[1])/(mm[2]-mm[1])
>>> v2 <- cbind(v, s)
>>> 
>>> Cheers,
>>> Ben
>>> 
>>> 
>>> 
>>>> Thanks,
>>>>
>>>> rcoder
>>>>
>>>>
>>>>
>>>> Ben Tupper wrote:
>>>>>
>>>>>
>>>>> On Jul 15, 2008, at 8:16 AM, rcoder wrote:
>>>>>
>>>>>>
>>>>>> Hi everyone,
>>>>>>
>>>>>> I want to score a set of data (-ve to +ve) using a 0-10 scale. I
>>>>>> have the
>>>>>> data in an R matrix, so I need to add another column, containing
>>>>>> the scores
>>>>>> and resave.
>>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> I am a little fuzzy on what you are asking, but my guess is that you
>>>>> want to normalize the data into the 0-1 range then multiply by 10.
>>>>>
>>>>> values <- rnorm(10) #some numbers
>>>>> mm <- range(values) #the minmax range
>>>>> scaled <- (values-mm[1])/(mm[2]-mm[1]) #normalize into 0-1
>>>>> scaled10 <- 10 * scaled #scale 0-10
>>>>>
>>>>> Is that what you seek?
>>>>> Ben
>>>>>
>>>>> ______________________________________________
>>>>> R-help at r-project.org mailing list
>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>> PLEASE do read the posting guide
>>>>> http://www.R-project.org/posting-guide.html
>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> View this message in context: http://www.nabble.com/Mapping-data- 
>>>> onto-score-tp18463695p18475083.html
>>>> Sent from the R help mailing list archive at Nabble.com.
>>>>
>>>> ______________________________________________
>>>> R-help at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide http://www.R-project.org/posting- 
>>>> guide.html
>>>> and provide commented, minimal, self-contained, reproducible code.
>>> 
>>> Ben Tupper
>>> PemaquidRiver at tidewater.net
>>> 
>>> I GoodSearch for Ashwood Waldorf School.
>>> 
>>> Raise money for your favorite charity or school just by searching the  
>>> Internet with GoodSearch - www.goodsearch.com - powered by Yahoo!
>>> 
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Mapping-data-onto-score-tp18463695p18494357.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list