我正在尝试获取更大的Movies数据框的子集,我想选择所有来自美国且年份在2个日期之间的电影。
我写了这句话:
usMoviesInRange <- movies %>% filter(country == "USA") %>% between(year, 1986, 2016)
但我收到一个错误提示,
介于(。,year,1986,2016)之间的错误:未使用的参数(2016)
有人可以帮助我了解这里发生的事情或我做错了什么吗?
答案 0 :(得分:4)
您没有正确使用between(x, left, right)
尝试
library(tidyverse)
movies <- tibble(country = c("USA", "France", "USA", "USA", "USA"),
year = c( 2000, 1995, 1935, 2019, 1990))
usMoviesInRange <- movies %>%
filter(country == "USA") %>%
filter(year %>%
between(1986, 2016)
)
usMoviesInRange
给予
# A tibble: 2 x 2
country year
<chr> <dbl>
1 USA 2000
2 USA 1990
答案 1 :(得分:1)
我强烈建议您使用此选项,您可以在dplyr::filter
上添加多个参数
usMoviesInRange = movies %>%
filter(country %in% "USA",
year > 1986,
year < 2016)
如果您使用dplyr::between
,则必须以这种方式使用:
country[between(x = country$year, left = 1986,right = 2016),]
希望有帮助,
答案 2 :(得分:1)
between
命令用于代替>=
和<=
例如
usMoviesInRange <- movies %>% filter(country == "USA") %>% filter(year>=1986 &<=2016)
可以改写为
usMoviesInRange <- movies %>% filter(country == "USA") %>% filter(between(year, 1986, 2016))