55得票5回答
在ggplot中循环变量

我希望使用ggplot循环遍历多个列以创建多个图表,但是在for循环中使用占位符会改变ggplot的行为。 如果我有这个: t <- data.frame(w = c(1, 2, 3, 4), x = c(23,45,23, 34), y = c(23,34,54, 23), z ...

53得票4回答
dplyr:如何在函数内使用group_by?

我想在另一个函数内使用 dplyr::group_by 函数,但不知道如何将参数传递给该函数。 有人可以提供一个可行的例子吗?library(dplyr) data(iris) iris %.% group_by(Species) %.% summarise(n = n()) # ## S...

37得票4回答
为什么在R语言中要优先使用enquo() + !!,而不是substitute() + eval()?

在下面的示例中,为什么我们应该更喜欢使用f1而不是f2?在某种意义上,它是否更有效率?对于习惯于基础R的人来说,使用“substitute + eval”选项似乎更自然。 为什么我们应该更喜欢使用f1而不是f2?在某种意义上,它是否更有效率?对于习惯于基础R的人来说,使用“substitu...

24得票3回答
没有可见的全局函数定义符号“:=”。

我正在编写一个使用tidyeval的包。因为我使用了tidyeval,所以在描述文件中将rlang列为导入项之一。 其中一个函数包含几行代码使用了:=操作符。 就像这样: data %>% dplyr::mutate( !!New_R := AP_R_X*!!X...

19得票1回答
rlang::sym在匿名函数中的使用

我最近注意到rlang::sym在匿名函数中似乎不起作用,但我不明白为什么。这里是一个例子,它相当笨拙和丑陋,但我认为它说明了问题。 require(tidyverse) data <- tibble(x1 = letters[1:3], x2 = let...

17得票3回答
在函数中使用dplyr时出现错误

我正在尝试编写一个函数,从我的原始数据框中创建一个子集,然后使用dplyr的SELECT和MUTATE函数,根据花萼/花瓣的宽度和长度之和,给出大/小条目的数量。filter <- function (spp, LENGTH, WIDTH) { d <- subset (iri...

17得票1回答
dplyr/tidyevaluation:如何将表达式作为字符串传递给mutate函数?

我想编写一个函数,它有两个输入参数:新变量的名称和数学表达式。这两个参数都是以字符串形式给出的。 该函数应接收一个数据框,并添加指定的新变量,该变量应为给定数学表达式的结果。 以下是我尝试的最小工作示例:df <- tibble(A = 1:10, B = 1:10) new_var...

16得票5回答
将函数参数传递给dplyr和ggplot

我对如何将函数参数传递到dplyr和ggplot代码中感到困惑。我正在使用最新版本的dplyr和ggplot2。以下是生成条形图(清晰度 vs 平均价格)的代码。diamond.plot<- function (data, group, metric) { group<- ...

15得票2回答
为什么将!!(双感叹号)与as.name()结合使用会产生与单独使用!!或as.name()不同的输出?

我使用动态变量(例如ID)作为引用列名称的方式,这取决于我正在处理哪个基因。然后我使用mutate中的case_when创建一个新列,该列将具有依赖于动态列的值。 我以为!!(叹号叹号)是我需要强制评估变量内容的方法;但是,我的新列没有得到预期的输出。只有!!as.name给了我预期的输出,而...

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...