首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功能问题。Tidyeval滤波

功能问题。Tidyeval滤波
EN

Stack Overflow用户
提问于 2018-11-17 12:13:17
回答 1查看 340关注 0票数 0

这里怎么了?这样做是可行的:

代码语言:javascript
复制
iris %>% 
  filter(Species == "setosa") %>% 
  summarise(msl = mean(Sepal.Length), msw = mean(Petal.Width))

并产生:

代码语言:javascript
复制
    msl   msw
1 5.006 0.246

但是这个函数不起作用:

代码语言:javascript
复制
means <- function(data, value){
  data <- enquo(data)
  value <- enquo(value)
  data %>% 
    filter(Species == !!value) %>% 
    summarise(msl = mean(Sepal.Length), msw = mean(Petal.Width))
}

means(iris, "setosa")会产生以下错误:

UseMethod中的错误(“filter_”):不适用于类"c('quosure','filter_‘)中调用的类filter_(.data,.dots =compat_as_lazy_dots(.))中的对象

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-17 13:22:40

错误消息非常简单,您不能过滤质量。我不知道你为什么要保留你的数据,但这会让你得到你想要的:

代码语言:javascript
复制
means <- function(data, value){

  value <- enquo(value)
  data %>% 
    filter(Species == !!value) %>% 
    summarise(msl = mean(Sepal.Length), msw = mean(Petal.Width))

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53351140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档