As pointed out by @stefan, the filter()
function in dplyr
is used for filtering data frames and not vectors. @stefan's suggestion is to put your vector in a data frame (as one column) and then use the filter()
function on it.
In case you absolutely need to keep your data in a vector and you would also like to use the tidyverse style of coding (i.e. with the pipe operator %>%
), you could use the keep
function inside the purrr
package.
library(purrr)
c1 <- c(1000, 200)
keep(c1, ~ .x > 100) # both values in the vector are greater than 100
[1] 1000 200
After all this, my personal opinion is that base R is more appropriate for filtering vectors:
c1[c1 > 100]
[1] 1000 200
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…