7得票5回答
使用dplyr::filter创建R函数的问题

我查看了其他答案,但找不到下面的代码工作的解决方案。基本上,我正在创建一个函数,该函数将两个数据帧进行inner_join ,并根据函数中输入的列对其进行filter。 问题在于函数的filter部分无法正常工作。 但是,如果我将过滤器从函数中删除并像mydiff("a") %>% f...

7得票1回答
“embracing operator” `{{ }}`是什么?

我刚刚在Tidyverse风格指南的第2.2.3节中发现了“embracing operator” {{ }}。 在R中,"embracing operator" {{ }} 是用于将表达式嵌入到字符串中的一种方法。

19得票4回答
自定义管道以消除警告消息

与这个问题相关。我想要构建一个自定义的管道%W>%,可以使得一次操作中的警告被忽略。 library(magrittr) data.frame(a= c(1,-1)) %W>% mutate(a=sqrt(a)) %>% cos 将等同于: w <- optio...

13得票2回答
dplyr 0.7.0 中的 tidyeval 打包。

前言 我经常在我的包中使用dplyr。在0.7.0之前,我使用下划线版本的dplyr动词来避免在R CMD CHECK期间出现NOTE。例如,代码: x <- tibble::tibble(v = 1:3, w = 2) y <- dplyr::filter(x, v >...

11得票1回答
全局变量“.”没有可见的绑定。

我目前正在使用 devtools 开发一个 R 软件包。我们在函数中使用 tidyverse 的 %>%,以及相关的 purrr 和 dplyr 软件包。 其中一项函数编辑后如下: #' Print `cust_modl` object #' #' @param x A `cust_...

9得票1回答
何时使用rlang::ensym()而不是rlang::sym()?

我可以从文档中看到,rlang::enquo() 和 rlang::quo() 在不同的上下文中使用。因此,我最近在函数声明中使用了 rlang::ensym()(见下文)。然而,在另一个SE函数调用中包含时,我得到了一个意外的错误,我想这与惰性评估有关(如果我在 f_enysm() 中使用 ...

15得票4回答
如何在使用tidyr和ggplot2的函数中使用dplyr的enquo和quo_name?

library(dplyr) #Devel version, soon-to-be-released 0.6.0 library(tidyr) library(ggplot2) library(forcats) #for gss_cat data 我正试图编写一个函数,将即将发布的dply...

14得票3回答
如何替换已弃用的ggplot2函数aes_string:接受任意数量的命名字符串以指定美学映射? 如何替代已废弃的ggplot2函数 aes_string,以接受任意数量的命名字符串来指定美学映射?

aes_string 曾经有一些方便的行为,我在使用 ggplot2 进行编程时用到了它。但是自从ggplot2版本3.4.0以来,aes_string 已被弃用。我正在努力寻找如何很好地替换它。 具体而言,我之前创建了函数,通过省略号接受任意字符串参数,并通过 do.call 将其传递给 ...

10得票1回答
如何使用quosures将命名向量传递给dplyr::select函数?

使用旧的select_()函数,我可以将一个命名向量传递到select中,同时更改位置和列名称:my_data <- data_frame(foo = 0:10, bar = 10:20, meh = 20:30) my_newnames <- c("newbar" = "b...

8得票5回答
ggplot2无法加载,出现“rlang”包错误。

这是错误信息: 错误:加载‘ggplot2’包或命名空间失败,因为在loadNamespace(i,c(lib.loc,.libPaths()),versionCheck = vI [[i]])时加载了命名空间‘rlang’0.3.4,但需要> = 0.4.0 另外还有一个警告...