Search code examples
rsimplify

Values of a vector without variable names


In R you can do this to retrieve the values of the elements of an numeric vector where time > 20

time <- c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22)
time[time>20]

But how could I do this without first assigning the vector? Is there something like:

c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22)[%>20]

Solution

  • Use a pipe operator (|>) from base R

    c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22) |> 
         {\(x) subset(x, x > 20)}()
    

    -output

    [1] 24 22 21 22
    

    Or with dplyr/magrittr %>%

    c(17, 16, 20, 24, 22, 15, 21, 15, 17, 22) %>% 
      .[. > 20]
    [1] 24 22 21 22