Re: [R] 'apply' with additional class variable

From: Mark Ebbert <Mark.Ebbert_at_hci.utah.edu>
Date: Sat, 21 May 2011 14:02:59 -0600

Thanks for the tip Josh! I thought about combining the data, but wondered if there was a way to pass in the information as a separate argument. But I went ahead with your solution and it worked perfectly. Thanks! On May 21, 2011, at 12:57 PM, Joshua Wiley wrote:

> Hi Mark,
>
> Is there a reason you cannot simply include the make of the car along
> with all the other data? Using your example:
>
> cbind(as.data.frame(t(x)), carmake)
>
> then instead of applying across columns, apply across rows, and have
> your custom function decide what to do based on the column named
> "carmake". Alternately, if you will be dealing with the same makes of
> cars a lot and are willing to do something a bit more involved, you
> could consider defining custom classes for each car make, make your
> function generic, and then create methods for it to match the
> different car makes.
>
> Cheers,
>
> Josh
>
>
> On Sat, May 21, 2011 at 11:23 AM, Mark Ebbert <Mark.Ebbert_at_hci.utah.edu> wrote:

>> Dear R gurus,
>> 
>> I'm trying to solve what I assume is a fairly simple problem, but I'm having trouble finding the proper approach. I have a matrix where each column is some object (e.g. a car) and each row is a numeric measurement of a feature of said object (e.g. horse power, top speed, etc.). Let's also suppose that I know what make the car is (e.g. toyota, ford, etc.), stored in a separate vector. What I want to do is apply a custom function over each column of this matrix, but the function will behave differently depending on the make of the car, so each time a column is passed into my custom function, the function needs to know the make of the car. What I imagine being able to do is something like this:
>> 
>> carmake<-c("Toyota","Ford","Chevy")
>> x<-matrix(1:12,nrow=4)
>> colnames(x)<-c("Car1","Car2","Car3")
>> rownames(x)<-c("Horsepower","TopSpeed","Weight","Cost")
>> res<-apply(my_matrix,2,my_func,carmake)
>> 
>> The obvious problem with this is that I cannot know which column 'my_func' is working on, in order to know which column to get the car make from. I then thought I could try and match on column name, but when the column is passed into 'my_func' it loses the column name.
>> 
>> Anyway, I hope that made sense. I appreciate any help you may offer!
>> 
>> Mark T. W. Ebbert
>> ______________________________________________
>> 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.
>> 

>
>
>
> --
> Joshua Wiley
> Ph.D. Student, Health Psychology
> University of California, Los Angeles
> http://www.joshuawiley.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. Received on Sat 21 May 2011 - 20:17:09 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 21 May 2011 - 20:20:08 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive