将列名传递给函数

2023-12-13

我有一个非标准评估的简单问题:将变量名作为参数传递到函数中。

作为一个可重现的例子,这是一件简单的事情:取一个变量的平均值,mpg来自mtcars数据集。我的最终目标是拥有一个可以输入数据集和变量并获取平均值的函数。

所以没有函数:

library(tidyverse)
mtcars %>% summarise(mean = mean(mpg))

#>       mean
#> 1 20.09062

我尝试过使用get()对于非标准评估,但我收到错误:

library(tidyverse)
summary_stats <- function(variable, dataframe){
  dataframe %>% summarise(mean = get(variable))
}

summary_stats(mpg, mtcars)

#> Error: Problem with `summarise()` input `mean`.
#> x invalid first argument
#> ℹ Input `mean` is `get(variable)`.

Created on 2020-09-19 by the reprex package (v0.3.0)

Edit:

我还有一个额外的后续问题。

我还需要variable论证作为char字符串,我尝试了下面的代码,但我仍然不知道如何做到这一点:

library(tidyverse)
summary_stats <- function(variable, dataframe){
  dataframe %>% summarise(mean = mean({{variable}}))
  print(as.character({{variable}}))
}

summary_stats(disp, mtcars)
#> Error in print(as.character({: object 'disp' not found

Created on 2020-09-19 by the reprex package (v0.3.0)


您可以使用卷曲卷曲 ({{}}) 运算符将列名作为不带引号的变量传递。

要获取作为字符值传递的变量,我们可以使用deparse, substitute.

library(dplyr)
library(rlang)

summary_stats <- function(variable, dataframe){
  print(deparse(substitute(variable)))
  dataframe %>% summarise(mean = mean({{variable}}))
}
#[1] "mpg"

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

将列名传递给函数 的相关文章

  • 如何使用 R 计算成为列表中中位数的概率?

    假设我有以下数据集 其中显示了假设实验的每个状态的三个观察结果的列表 state lt c Iowa Minnesota Illinois outcome lt list c 5 11 11 c 3 12 8 c 9 14 2 dat lt
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • 使用 R 选择第一个非 NA 值

    df lt data frame ID c 1 1 1 2 3 3 3 test c NA 5 5 6 4 NA 7 3 NA 10 9 我想创建一个名为 value 的变量 它是每个单独 ID 测试的第一个非 NA 值 对于只有NA的个体
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 计算 R 中各列的唯一值

    我正在尝试创建一个新变量 其中包含来自两个不同列的字符串值的唯一计数 所以我有这样的东西 例如 A tibble 4 x 2 names partners
  • 如何在 R 或 Python 中制作旭日图?

    到目前为止 我一直无法找到一个可以创建旭日图的 R 库约翰 斯塔斯科 http www cc gatech edu gvu ii sunburst 有人知道如何在 R 或 Python 中实现这一点吗 在极坐标投影中使用 matplotli
  • 为什么 R 更新后 sim_slopes() 中会出现此错误?

    我正在尝试使用 交互 包来创建简单斜率的约翰逊 尼曼图 但是 当尝试运行 sim slopes 函数时 出现以下错误 直到我将R更新到4 2 2 我才没有遇到这个问题 我使用的是 macOS Ventura 13 1 Error class
  • 如何从 R 中的 txt 文件读取矩阵?

    我有一个带有矩阵的txt文件 Matrix txt 重要 数字之间没有空格 0100 1001 1100 我想在 R 中将其作为矩阵读取 我该怎么做 我尝试使用 as matrix read table Matrix txt sep 但失败
  • 将不均匀的层次列表转换为数据框

    我认为还没有有人问过这个问题 但是有没有一种方法可以将具有多个级别和不均匀结构的列表的信息组合成 长 格式的数据帧 具体来说 library XML library plyr xml inning lt http gd2 mlb com c
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 条件字体颜色 R Markdown

    我无法找到一种方法来根据变量的值 gt 0 0 或 r setup include FALSE x lt 4 This is an R Markdown document r if x gt 0 textcolor red Markdown
  • 使用 template.docx 从 Shiny App 编织 Word 文档

    我正在尝试使用 template docx 文件从闪亮的应用程序编写一个 Word 文档 我收到以下错误消息 pandoc exe template docx openBinaryFile 不存在 没有这样的文件或目录 以下 3 个文件当前
  • 如何使用 tidymodels 和工作流集在同一数据集上拟合多个不同的线性模型

    我想评估同一数据集上多个 主要是 线性回归模型的性能 我想也许使用tidymodels包连同workflowsets workflow set 可能会起作用 我按照这个例子here https workflowsets tidymodels
  • 无法更改 RStudio 中的 R 版本

    我的 RStudio V 0 99 491 无法更改 R 版本 我以平常的方式行事Global Options gt R Version 然后它挂起并且不再工作或反应 R 运行良好的初始版本是R 3 1 0 我以前从未遇到过这样的问题 也许
  • 如何将plot中的单变量列表图表转换为ggplot2格式?

    我正在搜索 但仍然找不到一个非常简单的问题的答案 我们如何使用 R 中的 ggplot2 生成一个变量的简单线图 我正在分析时间序列数据 并且想要对图表进行更复杂的操作 我认为如果我使用 ggplot2 代替会更好plot It works

随机推荐

  • 如何将来自不同实体的项目动态添加到 ASP.NET Core MVC 中的列表

    这是我第一次使用列表 我的场景有点复杂 我想添加一个类型的对象Story有一个列表句子可以动态添加 句子与以下内容具有一对一的关系Image以及另一个一对一的关系Audio 可以选择添加 我设法将句子列表与故事对象一起添加到数据库中 但我不
  • iOS更改标签栏项目颜色安全吗?

    我正确使用以下方法来更改选项卡栏图标颜色 tabBarController tabBar setSelectedImageTintColor UIColor redColor 但在使用它之前 我读了一些关于苹果因这个问题而拒绝应用程序的帖子
  • 使用 htaccess 规则阻止 Semalt 引荐来源网址

    我已经在 htaccess 中实现了以下代码 但仍然看到来自 semalt 的引荐来源网址 例如 74 semalt com 89 semalt com 代码 Block visits from semalt com RewriteEngi
  • 计算字符串中字符的出现次数(频率)

    我有这个 GUI 来计算字符串中第一个字母的出现次数 我希望它以列格式计算所有字母 例如 这是我到目前为止所拥有的 import java awt BorderLayout import java awt event ActionEvent
  • Excel VBA 循环选择工作表

    我正在尝试编写一个宏 它将循环遍历选定数量的工作表以隐藏每张工作表上的空行 在每个工作表的 A 列中包含一个 1 或一个 0 如果是 0 我想隐藏该行 这是我从各个网站收集的代码 我最大的挑战是知道我需要操纵哪些对象 enter code
  • 自定义产品销售 Flash 徽章

    我正在尝试使用下面的此代码片段在销售闪存徽章上添加节省总额 但由于它不起作用而出现问题 任何建议将不胜感激 Add save amount on the sale badge add filter woocommerce sale flas
  • C#/Oracle:指定查询的编码/字符集?

    我正在尝试获取 Oracle 10 数据库的一些数据 有些单元格包含德语元音变音 在我的管理工具中 TOAD 我可以清楚地看到它们 Mantel f r Damen 女式夹克 这是我的 C 代码 简化 var oracleCommand n
  • Chrome Devtools 工作区映射不再起作用

    这曾经很有魅力 我过去已经使用相同的硬件 软件设置了十几次 但现在失败了 编辑所需的权限已到位 因为我可以在 Devtools 中编辑文件 如果我直接从源选项卡中的本地工作区打开它 编辑并保存它 但这当然并不比使用任何其他 IDE 更好 因
  • Javascript - 等待图像加载

    var l false var l2 false var imm new Image imm src b png imm onload function l true var imm2 new Image imm2 src c png im
  • jquery中如何获取HiddenFor控件的值

    我有一个隐藏的控制 Html HiddenFor m gt m SchedulingProfileDetails Id 我试图访问 jquery 中这个隐藏字段中的值 然后尝试将该值传递给控制器 var id SchedulingProfi
  • 为什么我在 Perl 中出现“在 ... 处的 printf 中缺少参数”?

    我有 Perl 代码 正在打印到文件 我给出格式 my format 4d 2d 2d 2d 2d 2d 7 2f x 9 n 因为我写的是年月日时分秒和 9 个浮点值 然后我将输出文件写入为 printf format data prin
  • 谁能帮我查一下我的体重指数计算器吗? (C#)

    我一周前刚刚开始编程 我的第一个任务是编写 BMI 计算器的代码 启动时它应该看起来像这样 BMI Calculator Your weight in kg x Your height in cm x Gender m f x gt You
  • 操作方法:Outlook 2016 for Mac - 在 Outlook 加载项中调试/查看控制台日志

    我们开发了一个使用 html5 js 的 Outlook 应用程序 现在称为加载项 最初适用于 OWA 但现在面向所有 Office 支持的平台 事实上 它似乎适用于所有平台 ios mac 上的 safari Windows 浏览器和 O
  • 提交时如何同步 VSTS 和 Github 存储库

    我在 Visual Studio 团队服务中有一个存储库 我希望它与 github 存储库保持同步 这允许我在 VSTS 中进行主要开发 当合并到 master 时 它将同步到 github 并且还允许其他人在 github 上做出贡献 当
  • NSWindow翻转动画(简单通用)

    如何在不进行复杂编码的情况下为 OS X 应用程序窗口制作翻转动画 最后 我做到了 我创建了与 NSWindowController 对象而不是 NSWidows 一起使用的对象 ALWindowFlipAnimator h import
  • 谷歌地图 API v3 |没有显示地图数据

    我正在为我们当地的消防员之家编写一个小型 JavaScript 应用程序 该应用程序有点像 powerpoint 等 但是是 html 格式的 在此应用程序中 我将显示一个谷歌地图 其中包含显示从消防员家到火灾地点的路线 我使用 jquer
  • python tkinter从命令中使用的函数返回值[重复]

    这个问题在这里已经有答案了 如何获取A到C的返回值 顺便说一下 我没有使用类 def button mylabel Label myGui text hi grid row 0 column 0 A B get return A B Str
  • 创建许可系统[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我为我工作的公司开发了一个信息管理系统 现在我想制作一种许可系统 以帮助防止任何人仅仅获取副本并将其设置在自己的家庭服务器上并将其用于任何目的 我知道也许最简单的方法是在系统的每
  • 将十六进制地址传递给指针变量

    我知道如何使用指针 但我不知道该怎么做 我有一个十六进制地址 当然它具有来自任何应用程序的任何值 我知道找到我想要的地址 我想编写一段 C 代码来将此地址传递给指针变量 然后我可以从该地址捕获值 依此类推 例如 hex 0x00010010
  • 将列名传递给函数

    我有一个非标准评估的简单问题 将变量名作为参数传递到函数中 作为一个可重现的例子 这是一件简单的事情 取一个变量的平均值 mpg来自mtcars数据集 我的最终目标是拥有一个可以输入数据集和变量并获取平均值的函数 所以没有函数 librar