[R] How to "apply" correctly.

Keith S Weintraub kw1958 at gmail.com
Tue Jan 7 19:42:20 CET 2014


Thanks Patrick,

That did the trick.

Oddly enough (or maybe not that oddly) I was looking through "The R Inferno" to try and find the answer. Since I often forget that there are other parameters available to '[' I never made it to 8.1.44 on dropping dimensions.

Hopefully this lesson will stick with me!

Thanks again,
All the best,
Happy New Year,
KW

--

On Jan 7, 2014, at 1:32 PM, Patrick Burns <pburns at pburns.seanet.com> wrote:

> I think you will be okay if you change
> one line to:
> 
> defMat<-sapply(defData[,-1, drop=FALSE], function(x) breakUpFun(freq, x))
> 
> In your example that doesn't work you are
> ending up with a vector rather than a one
> column data frame.
> 
> Pat
> 
> 
> On 07/01/2014 17:44, Keith S Weintraub wrote:
>> Folks,
>> 
>> # I have the following function:
>> 
>> breakByFreq<-function(freq, defData) {
>>   breakUpFun<-function(freq, defs) {
>>     if(freq != 1) {
>>       defs<-diff(c(0, defs))
>>       defs<-cumsum(rep(defs/freq, each = freq))
>>     }
>>     defs
>>   }
>>   defMat<-sapply(defData[,-1], function(x) breakUpFun(freq, x))
>>   data.frame(Year = 1:nrow(defMat), defMat)
>> }
>> 
>> # And this data (year column and then 2 columns of data):
>> 
>> dum<-structure(list(Year = 1:10,
>>             c1 = c(0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1),
>>             c2 = c(0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.16, 0.18, 0.2)),
>> .Names = c("Year", "c1", "c2"), row.names = c(NA, -10L), class = "data.frame")
>> 
>> # This works:
>> breakByFreq(1, dum)
>> 
>> # This doesn't:
>> breakByFreq(1, dum[,-3])
>> 
>> 
>> # How do I use and choose the appropriate apply function to make this work when there is one and or more columns to be "processed".
>> 
>> Thanks for your time,
>> KW
>> 
>> 
>> 
>> --
>> 
>> ______________________________________________
>> 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.
>> 
> 
> -- 
> Patrick Burns
> pburns at pburns.seanet.com
> twitter: @burnsstat @portfolioprobe
> http://www.portfolioprobe.com/blog
> http://www.burns-stat.com
> (home of:
> 'Impatient R'
> 'The R Inferno'
> 'Tao Te Programming')




More information about the R-help mailing list