问题标签 [rlang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2915 浏览

r - 将函数参数传递给 dplyr 和 ggplot

我对如何将函数参数传递给 dplyr 和 ggplot 代码感到困惑。我正在使用最新版本的 dplyr 和 ggplot2 这是我生成条形图的代码(清晰度与平均价格)

错误:

对于最新版本的 dplyr,下划线的 verbs_() 已被轻柔地弃用。看来我们应该使用quosures。

我的问题:

  • 有人可以澄清目前的最佳做法吗?
  • 上面的代码有什么问题?(请不要使用下划线 dplyr 动词..)

  • 在 ggplot 中,我知道我们可以使用 aes_string(),但在我的例子中,aes 中只有一个参数是从函数参数传递的。

提前致谢。

0 投票
2 回答
234 浏览

r - dplyr 0.7 - 将分组变量指定为字符串

我有一些变量名指定为字符串(例如来自 Shiny 应用程序的输入),我想在我的 dplyr 和 ggplot2 代码中使用它们,就好像它们是变量一样。

我通过反复试验让它工作,但我觉得必须有更好的方法。执行这些操作的更好方法是什么?

0 投票
1 回答
732 浏览

r - 使用 tidyeval 在 map2 内部取消引用

我正在创建一个计算“运行”次数或丢失或完整数据的函数 - 我希望它可以使用dplyr::group_by,所以我将其编写为 S3 方法 - 下面是此代码的简化示例。

不幸的是,我发现裸露的未加引号的变量名不起作用,但引用它,这确实有效,很奇怪。

下面是输出示例

0 投票
4 回答
778 浏览

r - dplyr 0.7 tidy eval:将字符变量转换为因子

我有一个包含许多变量的数据集,其中一些是字符变量,我想将其转换为因子。由于要转换的变量很多,我想使用来自dplyr_0.7. 这是我的数据中的一个最小示例:

我有一个命名列表,其中包含data.frame我要转换的每个变量。列表中的这些data.frames 都具有相同的结构,可以在此示例中看到:


不想做的是为每个变量定义这样的因素:


到目前为止,我已经尝试过以下内容:

第一步,我想convert_factors()通过调用convert_factors("factor1", data)which 返回来检查我的函数是否正常工作

该变量不显示值标签,而是被替换为NA

最终目标是对map我想要转换的所有变量。在这里,我试过map(c("factor1", "factor2"), convert_factors, df = data)了,它返回了

(function (x, strict = TRUE) 中的错误:参数已被评估

我尝试按照http://dplyr.tidyverse.org/articles/programming.html的说明进行操作,但这就是我想出的全部。

有谁知道问题出在哪里(并希望向我解释我的错误)。

0 投票
2 回答
1217 浏览

r - R quo_name 相当于 quos

嗨,在使用 dplyr 进行编程之后,我注意到可以使用 quo_name 添加名称。我想知道如何为多个列执行此操作,例如。就像一个 quos_name 之类的。例如:

变成

IE。为 ... 中指定的所有列添加均值和总和列,当然这仅作为示例,并且 quos_names 不存在。如果有办法做到这一点,那将非常有帮助。

例如,我知道可以在 data.table 中执行类似的操作DT[,(Col_names):=lapply(Cols,mean)](此代码不起作用,但我以前做过类似的操作)。

0 投票
1 回答
676 浏览

r - 新的 rlang 错误在 dplyr 中产生错误

dplyr::select今天使用基本的出现了一个新错误:

返回

我的sessionInfo

在此处输入图像描述

0 投票
2 回答
697 浏览

r - 如何以编程方式过滤 dplyr 中的列?

如果在调用函数之前我不想指定列,我将如何创建一个在列中删除 NA 值的函数?

第一个打印语句的输出是:

第二个打印语句的输出是:

如何让第二个打印语句与第一个相匹配?

0 投票
2 回答
1908 浏览

r - 在 dplyr 0.7+ 函数中重命名

我在使用 dplyr 重命名函数中的列时遇到困难。我已经找到了关于非标准评估和 enquo 使用的有用帖子(例如,http ://dplyr.tidyverse.org/articles/programming.html和 在自定义 dplyr 函数中更改结果变量的名称)。最终目标是使用该函数对每个组进行汇总,然后将列重命名为比原始变量名称更有意义的名称。

这是一个简单的示例,除了注释掉的行之外它都有效。

在函数之外,相关部分将简单地阅读:mtcars <- mtcars %>% rename("Vehicle Cylinders" = cyl, "Vehicle Gears" = gear)

我一定被重命名在函数中与函数之外的操作方式所困扰。有什么建议吗?我愿意接受建议。

更新
这是一种方法。我宁愿不把变量名放在字符串中,但不知道这里有什么办法。接受建议。

0 投票
1 回答
52 浏览

r - readr:从列中提取值

我使用readrread_delim是这样的:

在我的数据中,“焦点”列包含以下数据:

等等。我想以双精度获取数据,所以我想忽略“mm”后缀。

我发现了这个错误评论,这似乎表明这在今天实际上是不可能的readr,除非将列作为字符串读取,然后作为第二步进行转换。

但是,我只能假设必须有一种方法来编写自定义列规范,对吧?有可能编写自己的col_focal_length()函数,它建立在col_double()幕后,从一开始就实现正确的解析?

通过覆盖编辑解决方案:

但正如我所说,我想从一开始就在数据集中拥有它......

0 投票
2 回答
1440 浏览

r - 带有数据框和变量参数的 lapply 函数

我有一个总结变量的自定义函数。我简化了函数来说明我的问题,即它比下面显示的更复杂。请注意,函数的一般结构应该保持不变:它需要一个参数来指定要在哪个数据帧上工作 ( df),以及一个参数来总结哪个变量 ( variable_to_test)。

使用示例,我可以将函数应用于数据框中的每个变量:

但是:如何列出在数据框中的所有列上应用该函数?我试过了

但这会返回错误。我正在努力解决该函数为要处理的数据框和要汇总的变量的参数这一事实。请注意,我想保留这个结构——我发现将数据框的名称传递给函数而不是仅仅给函数提供变量名并将数据框“硬编码”到函数体中更优雅。有人知道如何使用lapply()该功能吗?