当我尝试使用%in%
操作符和pull()
子过滤器过滤 Dataframe 时,它不起作用。然而,当我将pull()
子查询存储在一个变量中,然后对该变量使用%in%
运算符时,它确实起作用了。“
我以著名的mtcars数据集为例。
library(tidyverse)
mydf <- tibble(mtcars)
字符串
假设我想要共享cyl+am+vs的所有观察,则以下代码不起作用:
mydf |> filter(mpg %in%
mydf |> filter(duplicated(paste0(cyl,am,vs))) |> pull(mpg)
)
型
错误代码:
Error in `filter()`:
ℹ In argument: `pull(...)`.
Caused by error in `UseMethod()`:
! no applicable method for 'filter' applied to an object of class "logical"
型
但是,同样的结构,使用变量工作:
mpg_as_var <- mydf |> filter(duplicated(paste0(cyl,am,vs))) |> pull(mpg)
mydf |> filter(mpg %in% mpg_as_var)
型
我不想只做重复,还要做第一次重复的观察。否则就是一个简单的filter(duplicated()) query
有什么想法吗?
1条答案
按热度按时间a6b3iqyw1#
在创建的向量周围使用括号,例如
字符串