[R] Mapping data onto score

rcoder michael.larsson at gmail.com
Wed Jul 16 20:56:34 CEST 2008


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-tp18463695p18494272.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list