lm() 公式中的 rlang 双花括号

2023-12-09

是否可以使用 rlang tidy 求值运算符{{在 lm 公式中?

我知道您可以使用双花括号来定义一个通用函数,如下所示:

my_scatter <- function(df, xvar, yvar) {
     ggplot(df) +
          geom_point(aes(x = {{xvar}}, y = {{yvar}}))
}

my_scatter(mpg, cty, hwy) 

但我想知道是否有一种方法可以在公式中进行类似的调用,例如在 lm() 内部:

my_lm <- function(df, yvar, xvar) {
     lm({{yvar}} ~ {{xvar}} , data = df)
}

my_lm(mpg, cty, hwy) 

有一些细微差别。第一的,{{通常仅在 tidyverse 提供的功能中受支持。即将到来的rlang::inject()功能将允许您将该支持扩展到任意函数。

Second, {{是简写!!enquo(),它捕获提供给函数的表达式以及应评估该表达式的环境。由于环境已经由数据框提供df,这里使用的更好的动词是ensym(),它仅捕获符号。

以下适用于 rlang 0.4.10:

my_lm <- function(df, yvar, xvar) {
    ysym <- rlang::ensym(yvar)
    xsym <- rlang::ensym(xvar)
    rlang::inject( lm(!!ysym ~ !!xsym, data=df) )
}

my_lm(mpg, cty, hwy)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

lm() 公式中的 rlang 双花括号 的相关文章

  • 使用 ggplot2 进行分面 qqplots

    假设我有以下数据 datapoints1 data frame categ c rep 1 n rep 2 n vals1 c rt n 1 2 rnorm n 3 4 datapoints2 data frame categ c rep
  • 贝叶斯网络中一个节点的条件概率修改(R代码)

    估计贝叶斯网络中的条件概率后 我问了一个节点 Inlet gas total Pressure 的概率如下 bn mle before Inlet gas total pressure 节点 Inlet gas total Pressure
  • 如何重新格式化数据并映射它?

    假设我有数据 其中列名称是城市 行名称是经度和纬度 Columbus Nashville Austin Washington D C London Manchester lon 82 99879 86 7816 97 74306 77 03
  • 如何使用 python 读取或转换 .MAP 文件扩展名文档?

    是否有一种简单的方法 或可用的库 来读取 map 文件扩展文档中的数据 最好使用Python 或R 我正在使用 python PCRaster 中的建模工具 该工具使用 map 文件扩展名编写地图 然而有趣的是 我还没有找到可以打开和研究这
  • 将鼠标悬停在 ggplot 上时更新 CSS 和渲染工具提示以错误的顺序发生

    我在这里构建了一个虚拟应用程序 它为 ggplot 生成悬停消息 并确保它们保持在屏幕边界内 我编写了一些计算来确定所需的 CSS 更正并将其发送到服务器 它基于将悬停消息保留在此处的第一次尝试 SO问题 https stackoverfl
  • R:异步并行lapply

    迄今为止我发现使用并行的最简单方法lapply在 R 中是通过以下示例代码 library parallel library pbapply cl lt makeCluster 10 clusterExport cl cl clusterE
  • 计算网络中的周期

    最好的方法是什么 或者是否有任何方法可以实现对网络中的 3 个和 4 个周期进行计数 3 个周期等于从一个模式网络计算的三个节点 三角形 的连接组 4 个周期等于由两个模式网络计算的四个节点 方块 的连接组 如果我有这样的网络 onemod
  • ggplot2 黑白配色方案的建议

    我正在使用 ggplot2 生成许多结构如下的图表 有没有一种简单的方法可以制作出黑白效果很好的东西 我确实读过这个question https stackoverflow com questions 2895319 how to add
  • 两个数据框之间逐元素的百分比变化

    我有 2 个数据框 它们具有相同数量的匹配列和行 例如 df 2010 lt data frame col1 c Connecticut Delaware District of Columbia Florida Georgia col2
  • 如何在 Markdown 标题中强制换行?

    我在 rmarkdown 文档中有一个很长的标题 我想在特定位置强制换行 最小示例 title Quite long title want the line break at the asterisk output html documen
  • “foreach”并行循环返回 s

    我正在尝试并行处理多个列表项 我的目标是 根据每列的值运行一些标签函数 然后返回带有节点名称 列名称和处理后的标签的数据帧 使用普通的 for 循环 工作流程可以正常工作 但是 当我尝试在 foreach 循环中执行相同的操作时 返回的结果
  • 如何使用 R 获取所有 S&P500 公司代码列表?

    我想在R中制作FOR语句来一次性分析股票数据 但我不知道如何获得 S P 公司代码列表 请让我知道解决方案 谢谢 library rpart library rpart plot library quantmod startDate as
  • 在 R 中组合/合并列

    我可能在这个问题上遗漏了一些很容易的东西 我在任何地方都找不到正确的答案 我真的需要继续前进 所以我过度简化了我的数据 eventID lt c 2 4 Time lt c 09 32 09 43 df1 lt data frame eve
  • igraph - 将文本添加到社区图

    使用下面的代码 我可以在 igraph 提供的 空手道俱乐部 示例中生成社区图 请参见第一张图片 library igraph karate lt make graph Zachary wc lt cluster walktrap kara
  • R 数据框中的重复行

    我正在尝试使用下面的代码复制数据框中的行 但是 我发现它很慢 duprow df 1 for i in 1 2000 print i df rbind df duprow 有更快的方法吗 您可以使用rep 例如对于数据框第 1 行的 5 个
  • 从谷歌街道地址中提取城市和州信息

    我有一个数据集 其中包含不同点位置的纬度 经度信息 我想知道与每个点关联的城市和州 按照此example https stackoverflow com questions 22911642 applying revgeocode to a
  • 按组渐进串联列[重复]

    这个问题在这里已经有答案了 假设我有这个输入 ID date 1 date 2 str 1 1 2010 07 04 2008 01 20 A 2 2 2015 07 01 2011 08 31 C 3 3 2015 03 06 2013
  • 为什么 NaN^0 == 1

    受到早期高尔夫代码的提示 为什么会 gt NaN 0 1 1 这非常有道理NA 0为 1 因为NA缺少数据 并且any数字提高到 0 将得到 1 包括 Inf and Inf 然而NaN应该代表非数字 那么为什么会这样呢 当帮助页面出现时
  • 使用 R 中的剪切函数对缺失值进行 NA 级别[重复]

    这个问题在这里已经有答案了 R 中的 cut 函数省略了 NA 但我想要一个缺失值的级别 这是我的 MWE set seed 12345 Y lt c rnorm n 50 mean 500 sd 1 NA Y1 lt cut log Y
  • 数据框中的动物园滞后差异

    我想将滞后差异的结果放回到我的数据框中 这意味着我将拥有针对不同滞后的领先 NA 我在用 new df lag1 lt diff new df Close lag 1 differences 1 arithmetic TRUE na pad

随机推荐

  • 如何将孙视图渲染到与第一个子视图相同的路由器出口中?

    这是对此的后续问题 Angular 2 辅助路由在 2 1 0 中如何工作 我也尝试过查看这个 但它并没有真正阐明这个问题 如何将子路由渲染到父级的路由出口 如果我有一条父路线 admin其中有一个
  • Php从关联数组中获取键[重复]

    这个问题在这里已经有答案了 我怎样才能从数组中只获取整个第一行 我使用 Laravel 例如当我说 request all 我收到 array 2 email gt email protected password gt adms Wh 我
  • StringBuilder 在 C# 内部如何工作?

    如何StringBuilder work 它有什么作用内部 它使用不安全的代码吗 为什么它这么快 与 操作员 当您使用 运算符构建字符串时 string s 01 s 02 s 03 s 04 然后 在第一次串联时 我们创建一个长度为 4
  • 打印出整个目录树

    我现在拥有的代码 import os Tree Tree os listdir Dir gt gt gt print Tree New Folder Textfile1 txt Textfile2 txt 这不会打印出子目录中的文件 新建文
  • 在运行时使用类型变量创建类型列表[重复]

    这个问题在这里已经有答案了 我试图简化在函数中创建多个变量的方法 这些变量针对不同类型和不同操作重复 最终我将迁移到可以处理多种类型的单个函数 但我是分阶段进行的 我希望能够创建其类型的对象列表而不是列表 而不必在各处复制 粘贴对象类型 我
  • Tcl 中是否有与 C stdlib.h 中的“string to X”函数等效的函数?

    有标准功能 例如atof and atoi in C s stdlib h用于将字符串转换为浮点数 整数 也可以执行相反的操作 Tcl 中是否有类似的功能 或者我是否需要编写自己的流程来执行这些任务 一切都是字符串在 Tcl 中 但是需要数
  • 如何将JFreeChart库添加到JDK?错误:包 org.jfree.chart 不存在

    在获得了一些其他语言的经验后 我开始使用 Java 对于所有这些 我一直在使用 Atom 代码编辑器 所以我已经使用 Java 进行管理 但最近我发现我需要使用外部库 JFreeChart 我使用 JDK 8 在 cmd Windows 上
  • 在 pandas 对象列上调用 `str.len` 时遇到问题

    我有一个 Pandas DataFrame 其中有一个名为的字符串列title我想将每一行的条目转换为该字符串的长度 所以 abcd 将被转换为4 等等 我正在这样做 result df title result df title str
  • SQL WHERE ID IN (id1, id2, ..., idn)

    我需要编写一个查询来检索大量 id 列表 我们确实支持许多后端 MySQL Firebird SQLServer Oracle PostgreSQL 因此我需要编写标准 SQL id 集的大小可能很大 查询将以编程方式生成 那么 最好的方法
  • Python re.sub 问题

    大家好 我不确定这是否可能 但我想在正则表达式替换中使用匹配的组来调用变量 a foo b bar text find a replacement for me a and b desired output find a replaceme
  • 在 SQL 中按分区分组或迭代

    有关 SQL 分区的两部分问题 在 T SQL 中 当您使用 PARTITION BY 时 除了 row number 之类的方法之外 是否还有一种方法可以为每个分区分配唯一的编号 例如 row number 会产生 Action Time
  • android 中的可绘制文本与左对齐

    I am new to custom view and didn t know much about canvas in android I wanted to align a left drawable to right side of
  • 如何在c中的2个进程之间传递整数值

    如何在两个进程之间传递整数值 例如 我有 2 个进程 child1 和 child2 Child1 向 child2 发送一个整数 然后 Child2 会将该值乘以 2 并将其发送回 child1 然后子级 1 将显示该值 在 Window
  • 将 GCM 迁移到 FCM,我应该/可以保留当前的 ​​GCM 服务器端代码吗?

    我一直在使用 GCM 服务向 PHP 服务器中的现有应用程序发送通知 按照https stackoverflow com a 11253231 3286489 现在我正在考虑迁移到 FCM 正如所指出的https stackoverflow
  • 如何在javascript中用另一个div替换div?

    如何在javascript中用另一个div替换div 这就是我所拥有的 div main div
  • 字典样式替换多个项目

    我有一个很大的字符数据 data frame 我想根据其他语言中通常所说的字典进行转换 目前我正在这样处理 foo lt data frame snp1 c AA AG AA AA snp2 c AA AT AG AA snp3 c NA
  • C 语言中哪些地方需要使用 volatile 关键字

    我知道 volatile 关键字会阻止编译器优化变量并在读取变量时从内存中读取它 除了内存映射寄存器之外 还有哪些情况需要使用易失性呢 给定一个合格的编译器 我是否必须在这两种情况下将 test var 声明为易失性 1 在文件1 c中 i
  • 简化服务器和客户端上的 WCF 配置

    我们正在将旧版 Net Remoting 服务迁移到 WCF 在阅读了该主题一段时间后 我偶然发现了这个元数据谈话并在客户端上动态构建代理 它看起来很有前途 如果可能的话 我想要实现的是以最少的配置 即没有显式的配置 在一个 Web 应用程
  • 如何使用 Elastic beanstalk 加密负载均衡器和 Web 服务器之间的流量

    我想要在 Elastic Beanstalk 环境中加密负载均衡器和 Web 服务器之间的流量 亚马逊在这里有一个指南 https docs aws amazon com elasticbeanstalk latest dg configu
  • lm() 公式中的 rlang 双花括号

    是否可以使用 rlang tidy 求值运算符 在 lm 公式中 我知道您可以使用双花括号来定义一个通用函数 如下所示 my scatter lt function df xvar yvar ggplot df geom point aes