pick elements cumulatively from a vector in R

cumulative sum in r
cumulative sum and product in r
r cumulative sum column by group
cumulative sum in r dplyr
cumsum matlab
cumulative sum in r data table
how to calculate cumulative value in r
r reverse cumulative sum

I'm using the following to cumulatively (i.e., first pick first 2 elements and each time add 1 more; see output below) pick elements from vector mods below. I wonder if there is a faster or simpler approach to doing this in BASE R?

n <- names(mtcars) # BASE R dataset

lapply(seq_along(n)[-1], function(i)n[seq_len(i)]) # any faster or simpler approach here?

[[1]]
[1] "mpg" "cyl"

[[2]]
[1] "mpg"  "cyl"  "disp"

[[3]]
[1] "mpg"  "cyl"  "disp" "hp"  

[[4]]
[1] "mpg"  "cyl"  "disp" "hp"   "drat"

You could use Reduce:

Reduce(c, n, accumulate=TRUE)

or, to start with the first two elements:

Reduce(c, tail(n,-2), n[1:2], accumulate=TRUE)

It is simpler IMHO, but not faster:

microbenchmark(
    lapply=lapply(seq_along(n)[-1], function(i)n[seq_len(i)]), 
    Reduce=Reduce(c, n, accumulate=TRUE)
)

Unit: microseconds
   expr  min   lq   mean median   uq    max neval
 lapply 10.2 10.6 22.056   10.8 11.0 1119.8   100
 Reduce 10.1 10.4 10.865   10.6 10.8   17.5   100

Cumulative Sums, Products, and Extremes, Returns a vector whose elements are the cumulative sums, products, minima or maxima of the elements of the argument. Usage. cumsum(x) cumprod(x) cummax (� Vector is a basic data structure in R. It contains element of the same type. The data types can be logical, integer, double, character, complex or raw. A vector’s type can be checked with the typeof() function. Another important property of a vector is its length.

Here is an option with rep and split

split(n[sequence(seq_along(n))], rep(seq_along(n), seq_along(n)))

R: Cumulative sum & product of elements of vector via cumsum , R: Cumulative sum & product of elements of vector via cumsum & Free To Choose Duration: 17:50 Posted: Oct 17, 2019 R Sample Dataframe: Randomly Select Rows In R Dataframes. Up till now, our examples have dealt with using the sample function in R to select a random subset of the values in a vector. It is more likely you will be called upon to generate a random sample in R from an existing data frames, randomly selecting rows from the larger set of observations.

I recommend runner package and window_run function which does exactly what you asking for. You can also specify number (k) of elements you'd like to be returned in each window. You can also specify lag and make windows depending on date. Here is example:

library(runner)
window_run(names(mtcars))

# [[1]]
# [1] "mpg"
# 
# [[2]]
# [1] "mpg" "cyl"
# 
# [[3]]
# [1] "mpg"  "cyl"  "disp"
# 
# [[4]]
# [1] "mpg"  "cyl"  "disp" "hp"

In benchmark it's very similar to Reduce solution, because of cpp implementation:

microbenchmark::microbenchmark(
  window_run = window_run(names(mtcars)),
      Reduce = Reduce(c, n, accumulate = TRUE),
      lapply = lapply(seq_along(n)[-1], function(i) n[seq_len(i)]),
       times = 1000000L
)
# Unit: microseconds
#        expr    min     lq     mean median     uq       max neval
#  window_run 10.296 12.782 15.45241 13.543 14.467  98018.87 1e+06
#      Reduce 10.979 13.048 15.80921 13.882 14.847  98881.51 1e+06
#      lapply 11.797 14.540 17.42722 15.518 16.729 116346.98 1e+06

For more details checkout documentation

R tutorials,arrays,frames,sort,which,append,subset,merge,filter, We will apply a filter to select elements which are not NA's and at the same time Given a vector of numbers, we can find the cumulative sum and cumulative� To extract a specific element from a vector, use square brackets. To get the tenth element of letters, for example, use the following: > letters[10] [1] "j" To get the last three elements of LETTERS, use the following: > LETTERS[24:26] [1] "X" "Y" "Z" The colon operator (:) in R is a handy way of creating sequences, so 24:26 results in 25, 25

Cumulative sum - MATLAB cumsum, If A is a vector, then cumsum(A) returns a vector containing the cumulative sum of the elements of A . If A is a matrix, then cumsum(A) returns a matrix containing� How R does indexing. Every time R shows you a vector, it displays a number such as [1] in front of the output. In this example, [1] tells you where the first position in your vector is. This number is called the index of that value. If you make a longer vector — say, with the numbers from 1 to 30 — you see more indices. Consider this example:

How can I find the cumulative sum of a vector without using the , If I have [4 -2 6 1 2], how I find the cum sum of this vector without using the cumsum function or loops or any other functions. I method I am� Your list will often be built out of numerous elements and components. Therefore, getting a single element, multiple elements, or a component out of it is not always straightforward. One way to select a component is using the numbered position of that component. For example, to "grab" the first component of shining_list you type . shining_list[[1]]

Window functions • dplyr, The output of a window function depends on all its input values, so window functions Cumulative aggregates: cumsum() , cummin() , cummax() (from base R), and R's vector recycling makes it easy to select values that are higher or lower� By Andrie de Vries, Joris Meys . You can extract components from lists in R. Consider two lists. The display of both the unnamed list baskets.list and the named list baskets.nlist show already that the way to access components in a list is a little different.