[R] apply and cousins

Jim Lemon drjimlemon at gmail.com
Thu Jun 9 01:13:37 CEST 2016


Hi John,
With due respect to the other respondents, here is something that might help:

# get a vector of values
foo<-rnorm(100)
# get a vector of increasing indices (aka your "recent" values)
bar<-sort(sample(1:100,40))
# write a function to "clump" the adjacent index values
clump_adj_int<-function(x) {
 index_list<-list(x[1])
 list_index<-1
 for(i in 2:length(x)) {
  if(x[i]==x[i-1]+1)
   index_list[[list_index]]<-c(index_list[[list_index]],x[i])
  else {
   list_index<-list_index+1
   index_list[[list_index]]<-x[i]
  }
 }
 return(index_list)
}
index_clumps<-clump_adj_int(bar)
# write another function to sum the values
sum_subsets<-function(indices,vector) return(sum(vector[indices],na.rm=TRUE))
# now "apply" the function to the list of indices
lapply(index_clumps,sum_subsets,foo)

Jim


On Thu, Jun 9, 2016 at 2:41 AM, John Logsdon
<j.logsdon at quantex-research.com> wrote:
> Folks
>
> Is there any way to get the row index into apply as a variable?
>
> I want a function to do some sums on a small subset of some very long
> vectors, rolling through the whole vectors.
>
> apply(X,1,function {do something}, other arguments)
>
> seems to be the way to do it.
>
> The subset I want is the most recent set of measurements only - perhaps a
> couple of hundred out of millions - but I can't see how to index each
> value.  The ultimate output should be a matrix of results the length of
> the input vector.  But to do the sum I need to access the current row
> number.
>
> It is easy in a loop but that will take ages. Is there any vectorised
> apply-like solution to this?
>
> Or does apply etc only operate on each row at a time, independently of
> other rows?
>
>
> Best wishes
>
> John
>
> John Logsdon
> Quantex Research Ltd
> +44 161 445 4951/+44 7717758675
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.



More information about the R-help mailing list